Scrapy 爬取贴吧的例子

该爬虫主要用到了scrapy框架. 通过此例子大家可以熟悉下scrapy的流程:

  1. 由于该网站是通过js处理的,在spidertieba.py中,通过response.xpath(’//li[@class=" j_thread_list clearfix"]’)解析字段信息, 始终没法抓取到数据.

  2. 如何抓取到数据是关键, 就想到了用scrapy + selenium 进行动态加载页面的内容爬取。
    在middlewares.py中,使用了 selenium+chromedriver使chrome无界面化. 当然大家可以选择PhantomJS + 火狐都可以, PhantomJS已经停止更新了, 谷歌浏览器支持力度最大,建议用chrome

  3. 在DownloaderMiddleware中,主要是通过该函数 def process_request(self, request,
    spider):来模拟浏览器发送请求.

  4. 至于为什么要放到中间件DownloaderMiddleware中处理,大家可以看下scrapy架构图。
    在这里插入图片描述

  5. 在settings.py中,需要把DOWNLOADER_MIDDLEWARES 和ITEM_PIPELINES打开。

spidertieba.py:用于请求数据并解析数据,然后保存到item中
items.py: 创建要保存的字段信息
middlewares.py: 用selenium+chromedriver模拟谷歌浏览器发送请求.目的就是进行动态加载页面,方便spidertieba.py中通过xpath解析数据
pipelines.py: 创建文件& 保存item数据, 例子中是以json格式保存数据
settings.py:配置信息, 需要把DOWNLOADER_MIDDLEWARES 和ITEM_PIPELINES打开

运行scrapy crawl spidertieba

最终会保存tieba.json文件

大家可以下载源码:

https://download.csdn.net/download/ding283595861/11708840

需要修改一个地方:在middlewares.py中,需要把第一个参数改成 你们自己本地的路径:

self.driverwebdriver.Chrome(r’D:\*****\chromedriver_win32\chromedriver.exe’,options=chrome_options)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值