python中scrapy点击按钮

2018-01-03 17:20:21 浏览数 (1)

最初遇到的问题的是在用scrapy爬取微博时需要按照指定关键字来爬取特定微博,主要还是解决需要输入关键字然后点击搜索按钮的问题。于是:

首先

找了scrapy的官方文档,发现有FormRequest.from_request()函数,于是试着用了,官方文档说函数默认会找到第一个submit的按钮,试了下没有结果,然后把clickdata设成d字典{'name':'button_name'},button_name为按钮的名字,还是没有任何反应(不知道是不是我的问题)。

然后

因为之前有用过selenium写过简单的爬虫,但是爬取的数据到一定程度账号就会被禁止。于是转成scrapy准备用多账号来对付反爬虫。selenium是完全模拟浏览器的行为,click功能自然是与生俱来。所以萌生了,使用selenium来实现点击功能。

但是,这样也需要先登录然后才能实现搜索。怎么登录呢?cookies!于是想利用scrapy的cookies来登录selenium账号,经过了一段时间的探索,最终还是以失败告终。(“error message:cannot only add cookies in current domain”)

最后

在无奈之际,手动搜索了微博,然后点击到下一页。发现链接后缀page=2(当前为第二页),原来第一页后面的链接都是隐藏的,发现这个规律之后,就用规则的方法实现的微博的搜索和页面的跳转!

换个视角会发现世界很美好!

0 人点赞