2017-06-08 38 views
0

刮我想建立一個蜘蛛從網站Techcrunch - Heartbleed search的Python/Scrapy來自Techcrunch的

我因子評分是執行命令行(例如:心臟出血漏洞)蜘蛛的時候給一個標籤刮掉一些數據。然後,蜘蛛應搜索所有相關搜索結果,打開每個鏈接並獲取其中的數據。

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"

充分利用個人網頁中的數據是沒有問題的,但實際得到的URL,他們是(從上面鏈接的搜索頁):

的事情是,當看着搜索網站的源Html文件(Ctrl + u)(上面的鏈接),然後我找不到任何有關搜索到的元素(例如:「什麼是Heartbleed?視頻」)。任何建議如何獲得這些元素?

回答

0

我建議你定義你的scrapyclass沿着這個答案中顯示的行,但使用PhantomJSselenium無頭瀏覽器。根本問題是,當scrapy下載這些頁面時,它使用javascript代碼來構建您看到但無法通過您選擇的路由訪問的HTML(DOM)。

+0

一如既往的幫助!謝謝 – BlackBat

+0

非常歡迎。 –