一个Bangumi.tv的爬虫

对爬虫的学习也有一段时间了,但由于要应付校内实习和秋招大潮,爬虫学习的进度也有所停滞。在校内实习期间抽空看了下scrapy的视频教程,对用scrapy开发爬虫也有了一定的了解,自己也尝试“套用”scrapy进行了一些爬取工作,其中也包括使用scrapy进行Bangumi的爬取,但对其中的Rule规则、异步读写数据库、middleware中间件的使用等地方还是不求甚解。在读到知乎上某大大的eh爬虫后,决定参照其模式将Bangumi爬虫重写一遍,整理成一个独立的、架构相对完整的爬虫程序。

程序构成

爬虫程序主要分为四个部分:代理获取get_proxy.py、目录获取get_url.py、内容获取get_content.py、数据库写入sql_work.py。

主程序main.py启动后生成两个队列url_queue与data_queue用于保存待爬取的url与已经爬取完成的页面数据data,同时启动一个目录获取线程,PROCESS_MAX个内容获取进程,1个数据库写入线程,

代理获取

该部分依赖于github上的开源项目IPProxyPool
,下载后运行其中的IPProxy.py文件,通过对127.0.0.1:8000进行访问便能获取稳定健壮的代理ip。该部分包含了ip代理能否到达Bangumi的测试与对无效ip的删除。

目录获取

从Bangumi的动画排行页面往后进行翻页即可获取所有收录的动画的链接集合,当翻页后发现获取的集合为空时判断已经获取了所有的动画详情链接。获取的动画详情链接加入到url_queue队列中。

内容获

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是用Python和Selenium爬取https://bangumi.tv/subject/317613的示例代码: 首先,安装Selenium库: ```python pip install selenium ``` 然后,你需要下载chromedriver。可以通过以下链接下载对应版本的chromedriver: https://sites.google.com/a/chromium.org/chromedriver/downloads 下载完成后,将chromedriver.exe文件放在你的Python项目目录下(或者你可以指定chromedriver.exe文件的路径)。 接下来就是代码部分了: ```python from selenium import webdriver from selenium.webdriver.common.keys import Keys # 创建selenium的webdriver driver = webdriver.Chrome() # 如果你指定了chromedriver.exe文件的路径,需要传入executable_path参数。 # 打开网页 driver.get("https://bangumi.tv/subject/317613") # 获取标题 title = driver.find_element_by_css_selector("#headerSubject h1").text print("标题:", title) # 获取评分 rating = driver.find_element_by_css_selector(".global_score .number").text print("评分:", rating) # 获取简介 description = driver.find_element_by_css_selector("#subject_summary .subject_summary").text print("简介:", description) # 关闭浏览器 driver.quit() ``` 这段代码会打开Chrome浏览器,并访问https://bangumi.tv/subject/317613。然后,它会使用Selenium的find_element_by_css_selector方法来找到网页中的标题、评分和简介,并输出到控制台中。最后,它会关闭浏览器。 当然,这只是一个简单的示例,你可以根据需要对代码进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值