|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 WangJS 于 2020-6-7 15:30 编辑
爬虫的前面都没有问题
就是到了第10页,有四个电影没有简介
就出现了简介与电影名对不上的问题
因为zip的问题,最后面4个电影都没有保存到列表里
我自己也想了个办法:
就是判断一下有没有<p class="quote">这个标签,没有就把简介一项设为空的
最后发现自己不会爬取一小部分的源代码
所以来求助了
这是我现在的代码:
- import requests
- import openpyxl
- from lxml import etree
- """
- 先创建一个表格
- """
- # 实例化
- wb = openpyxl.Workbook()
- sheet = wb.active
- sheet.title = 'Top250'
- sheet.append(['序号', '名称', '评分', '简介'])
- sheet.column_dimensions['B'].width = 30
- """
- 爬虫 + 写入表格
- """
- # 请求头
- headers = {
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'}
- # 第一页的url
- url = "https://movie.douban.com/top250?start=0&filter="
- # 共10页,循环10次
- for zzz in range(10):
- # 获取源代码
- Res = requests.get(url, headers=headers).text
- # 解析代码
- data = etree.HTML(Res)
- # 获取电影相关
- index = data.xpath('//em[@class=""]')
- name = data.xpath('//div[@class="hd"]//span[@class="title"][1]')
- score = data.xpath('//span[@class ="rating_num"]')
- Introduction = data.xpath('//p[@class="quote"]/span[@class="inq"]')
- # 打印单个电影相关
- for dx, n, s, i, x in zip(index, name, score, Introduction, range(1, 251)):
- index_text = dx.text
- name_text = n.text
- score_text = s.text
- Introduction_text = i.text
- end_list = [index_text, name_text, score_text, Introduction_text]
- # print(end_list)
- sheet.append(end_list)
- if zzz != 9:
- z_url = data.xpath('//span[@class="next"]//@href')[0]
- # 拼接下一页链接
- url = 'https://movie.douban.com/top250' + z_url
- """
- 保存表格
- """
- wb.save(r"C:\Users\86185\Desktop\豆瓣Top250.xlsx")
- print('保存成功!')
复制代码
先谢谢大佬们了 |
|