Scrapy 跟随 javascript 输入按钮
Scrapy follow javascript input button
我在页面上有以下输入:
<input name="ct99" value="" id="ct99" class="GetData" type="submit">
<input name="ct92" value="" id="ct92" class="GetData" type="submit">
<input name="ct87" value="" id="ct87" class="GetData" type="submit">
class GetData 显示一些可点击的图标。单击它时,将打开新页面。一些 JavaScript 负责处理。我该如何关注?
我已经在尝试下面的代码只是为了看看 scrapy 是否跟随输入,但没有成功。
def parse(self, response):
sel = Selector(response)
links = sel.xpath("//input[@class='GetData']").extract()
for data in links:
yield scrapy.FormRequest.from_response(response,
formdata={}, callback=self.after_click)
def after_click(self, response):
url = response.url
print '\nURL', url
有两种常见的方法来解决这个问题:
- 使用浏览器开发人员工具(“网络”选项卡),检查单击特定按钮时发送的请求,然后使用
scrapy.Request
或 scrapy.FormRequest
模拟此请求
使用 selenium
使浏览器自动化:找到按钮并单击它,然后抓住 .page_source
并实例化一个 Selector
实例,请在此处查看示例:
- Scrapy with Selenium crawling but not scraping
我在页面上有以下输入:
<input name="ct99" value="" id="ct99" class="GetData" type="submit">
<input name="ct92" value="" id="ct92" class="GetData" type="submit">
<input name="ct87" value="" id="ct87" class="GetData" type="submit">
class GetData 显示一些可点击的图标。单击它时,将打开新页面。一些 JavaScript 负责处理。我该如何关注?
我已经在尝试下面的代码只是为了看看 scrapy 是否跟随输入,但没有成功。
def parse(self, response):
sel = Selector(response)
links = sel.xpath("//input[@class='GetData']").extract()
for data in links:
yield scrapy.FormRequest.from_response(response,
formdata={}, callback=self.after_click)
def after_click(self, response):
url = response.url
print '\nURL', url
有两种常见的方法来解决这个问题:
- 使用浏览器开发人员工具(“网络”选项卡),检查单击特定按钮时发送的请求,然后使用
scrapy.Request
或scrapy.FormRequest
模拟此请求
使用
selenium
使浏览器自动化:找到按钮并单击它,然后抓住.page_source
并实例化一个Selector
实例,请在此处查看示例:- Scrapy with Selenium crawling but not scraping