鱼C论坛

 找回密码
 立即注册
楼主: 拉了盏灯

[作品展示] 爬虫:爬取豆瓣TOP250(Beautifulsoup&lxml)

  [复制链接]
发表于 2023-7-16 19:10:46 | 显示全部楼层
学习学习
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-17 10:34:07 | 显示全部楼层
学习学习
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-30 10:24:58 | 显示全部楼层
6
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-9-30 18:34:58 | 显示全部楼层
太强了加油
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-1 09:39:29 | 显示全部楼层
学习一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-1 11:29:02 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-7-6 19:45:07 | 显示全部楼层
厉害
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-8-15 23:52:01 | 显示全部楼层
111
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-8-16 07:01:07 From FishC Mobile | 显示全部楼层
来学习了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-16 17:56:35 | 显示全部楼层
  1. from selenium import webdriver
  2. import time
  3. from lxml import etree

  4. browser = webdriver.Chrome()


  5. def main():
  6.     browser.get("https://movie.douban.com/top250?start=0&filter=")
  7.     for page in range(10):
  8.         browser.execute_script('window.scroll(0,document.documentElement.scrollHeight)')  # 拉动滚动条到页面底部
  9.         html = browser.page_source  # .page_source获取网页源码
  10.         tree = etree.HTML(html)
  11.         for div in tree.xpath('//ol[@class="grid_view"]/li/div'):
  12.             title1 = div.xpath('.//div[@class="hd"]/a/span[1]/text()')[0]  # 电影名信息1
  13.             title2 = div.xpath('.//div[@class="hd"]/a/span[2]/text()')[0]  # 电影名信息2
  14.             title3 = div.xpath('.//div[@class="hd"]/a/span[3]/text()')  # 电影名信息3
  15.             if title3 == []:
  16.                 title3 = ['/ 暂无标签']
  17.             title3 = ''.join(title3).replace('\\xa0/\\xa0', '/')  # 上面3电影名信息拼起来并替换掉多的\xa0/\xa0
  18.             info1 = div.xpath('.//div[@class="bd"]/p//text()')  # 取导演,年份,国家的详细信息
  19.             # print(info1)
  20.             info = '+'.join(info1).replace('\n', '').replace(' ', '')
  21.             director = info.split("主")[0]  # 导演 用主字 分割 字符串 并取列表下标0的部分
  22.             year_country_type = info.split("+")  # 将字符串info 用+分割出 [主演,年、 国家、电影类型,电影描述] 为列表类型
  23.             # print(len(year_country_type))   # 查看列表长度区别
  24.             if len(year_country_type) > 2:  # 用列表长度判断 有电影描述列表长度=5
  25.                 year_country_type = year_country_type[1]  # 获取列表下标为1的年、 国家、电影类型
  26.             else:  # 没有电影描述 列表长度为2
  27.                 year_country_type = year_country_type[-1]  # 获取列表下标为-1的年、 国家、电影类型
  28.             # print(year_country_type)  # 测试,寄生虫影片无电影描述,成功走if判断获取正确的年、 国家、电影类型
  29.             star = div.xpath('.//div[@class="star"]/span[1]/@class')[0]  # 电影评分几颗星
  30.             if star == 'rating5-t':  # 找到规律的关键字,加个判断和符号,美观一点
  31.                 star = '5星★★★★★'
  32.             elif star == 'rating45-t':
  33.                 star = '4.5星★★★★⭐️'
  34.             else:
  35.                 star = '4星★★★★ ️'  # 经过测试筛选250个电影没有低于4星的,所以判断也只到4星截止
  36.             score = div.xpath('.//div[@class="star"]/span[2]/text()')[0] + '分'  # 满分10分,评价分数
  37.             man_score = div.xpath('.//div[@class="star"]/span[4]/text()')[0]  # 评分人数
  38.             if len(info1) > 2:  # 判断此列表长度,筛选出没有电影描述的影片,给其替换一个暂无描述的的数据
  39.                 quote = div.xpath('.//div[@class="bd"]/p[2]/span/text()')[0]
  40.             else:
  41.                 quote = '暂无描述'
  42.             print(title1, title2, title3, director, year_country_type, star, score, man_score, quote)
  43.         browser.find_element_by_xpath('//span[@class="next"]').click()  # 游览器在xpath规则内匹配一次元素 找span标签单击鼠标


  44. main()
  45. time.sleep(3)
  46. browser.quit()  # 退出游览器或者browser.close() 关闭当前标签页
复制代码

好巧,前段时间我也学爬这个来着, 不过我学的是用selenium自动化爬取的, 需要提前准备好 自动化的驱动 的环境
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-16 18:01:41 | 显示全部楼层
附上一张爬取下来的部分数据截图
爬取的部分数据截图.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-9-2 16:17:35 | 显示全部楼层

学习
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-20 02:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表