来自Techcrunch的Python / Scrapy抓取

时间:2017-06-08 14:55:17

标签: python scrapy

我正在尝试构建一个蜘蛛来从网站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?视频”)。有关如何获得这些元素的任何建议吗?

1 个答案:

答案 0 :(得分:0)

我建议您按照此答案中显示的行定义scrapy class,但使用PhantomJS selenium无头浏览器。基本问题是当scrapy下载这些页面时,它使用javascript代码来构建您看到但无法通过您选择的路径访问的HTML(DOM)。