我正在尝试抓取http://www.sueryder.org/Get-involved/Volunteering/All-Roles,正如您可以看到的,如果您单击第二个页面,页面的URL不会更改,而是通过javascript处理的。我一直试图使用“检查元素”中的“网络”选项卡,但我完全迷失了方向。我设法抓取了网站的第一页,下面是代码。在
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from scrapy_demo.items import ScrapyDemoItem
class MySpider(BaseSpider):
name = "test"
allowed_domains = ["sueryder.org"]
start_urls = ["http://www.sueryder.org/Get-involved/Volunteering/All-Roles"]
def parse(self, response):
hxs = HtmlXPathSelector(response)
titles = hxs.select('//tr')
items = []
for titles in titles:
item = ScrapyDemoItem()
item ["link"] = titles.select('td/text()').extract()
items.append(item)
return items
JavaScript只提交一个表单,所以使用
FormRequest
:您还必须子类
CrawlSpider
并设置Rule
来对结果页进行爬网,因为在parse
内进行这样的操作是行不通的。在相关问题 更多 >
编程相关推荐