嘶 试了好几天了数据能爬取下来但是存不进数据库,跟没反应似的QAQ
# coding:utf-8 import requests import pymysql from lxml import html k = 1 headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36' } for i in range(10): url = 'https://movie.douban.com/top250?start={}&filter='.format(i*25) con = requests.get(url,headers=headers).content sel = html.fromstring(con) # 所有的信息都在class属性为info的div标签里,可以先把这个节点取出来 //*[@id="content"]/div/div[1]/ol for i in sel.xpath('//div[@class="info"]'): # 影片名称 title = i.xpath('div[@class="hd"]/a/span[@class="title"]/text()')[0] #print(title) info = i.xpath('div[@class="bd"]/p[1]/text()') # 导演演员信息 info_1 = info[0].replace(" ", "").replace("\n", "") # 上映日期 date = info[1].replace(" ", "").replace("\n", "").split("/")[0] # 制片国家 country = info[1].replace(" ", "").replace("\n", "").split("/")[1] # 影片类型 geners = info[1].replace(" ", "").replace("\n", "").split("/")[2] # 评分 rate = i.xpath('//span[@class="rating_num"]/text()')[0] # 评论人数 comCount = i.xpath('//div[@class="star"]/span[4]/text()')[0] # 打印结果看看 print ("TOP%s" % str(k)) print( title, info_1, rate, date, country, geners, comCount ) connection='' try: # 获取一个有效的数据库连接对象,此处填写你的数据库信息,特别注意charset一定要写成'utf8',不能写成'utf-8'。 connection = pymysql.connect(host='localhost', port=3306, user='root', password='111', db='test', charset='utf8') if connection: print("[mysql]>>正确获取数据库的连接对象") # 创建一个游标对象 curosr = connection.cursor() print('[mysql]正确获取游标对象') # 设置插入数据的sql语句模板 sql = "insert into doubanmovie VALUES (null,'%d','%s','%s,','%s','%s','%s','%s')" % (k, title, rate, comCount, date, country, info_1) print('[mysql]>>%s' % sql) # 使用游标对象发送sql语句并将服务器结果返回 affectedRows = curosr.execute(sql) msg = '[mysql]>>写入操作成功' if affectedRows > 0 else '[mysql]>>写入失败' print(msg) # 事务提交 connection.commit() print("[mysql]>>事务提交") except: connection.rollback() print('[mysql]事务回滚') finally: # 关闭数据库连接 connection.close() print("[mysql]>>关闭数据库连接") k += 1
新增失败肯定会报错呀,把错误信息发出来看看
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y