我正在尝试构建一个蜘蛛来从网站Techcrunch - Heartbleed search
中删除一些数据我的意思是在从命令行执行蜘蛛时给出一个标记(例如:Heartbleed)。然后,蜘蛛应搜索所有相关的搜索结果,打开每个链接并获取其中包含的数据。
import scrapy
class TechcrunchSpider(scrapy.Spider):
name = "tech_search"
def start_requests(self):
url = 'https://techcrunch.com/'
tag = getattr(self, 'tag', None)
if tag is not None:
url = url + '?s=' + tag
yield scrapy.Request(url, self.parse)
def parse(self, response):
pass
this code can be executed with : scrapy crawl tech_search -s DOWNLOAD_DELAY=1.5 -o tech_search.jl -a tag=EXAMPLEINPUT"
从单个页面获取数据不是问题,但实际获取网址是(来自上面链接的搜索页面):
问题是,当查看搜索网站(上面的链接)的源Html文件(Ctrl + u)时,我无法找到有关搜索元素的任何信息(例如:“什么是Heartbleed?视频”)。有关如何获得这些元素的任何建议吗?
答案 0 :(得分:0)
我建议您按照此答案中显示的行定义scrapy
class
,但使用PhantomJS
selenium
无头浏览器。基本问题是当scrapy
下载这些页面时,它使用javascript
代码来构建您看到但无法通过您选择的路径访问的HTML(DOM)。