我試圖取消網站時遇到動態內容問題。我只是用泊塢窗使用濺到添加到我的Scrapy如下:Scrapy蜘蛛在幾分鐘後返回200響應
https://blog.scrapinghub.com/2015/03/02/handling-javascript-in-scrapy-with-splash/
不幸的是,我還沒有捕獲,因爲動態內容的內容(可能?)。
我的代碼運行時,捕獲的內容,然後刮約4000頁後,它只是返回該錯誤的下一個6000頁,其中大部分數據:
[scrapy.core.engine] DEBUG: Crawled (200) <GET http://www...> (referer: None)
這裏是我的蜘蛛代碼:
import scrapy
from scrapy_splash import SplashRequest
class PeopleSpider(scrapy.Spider):
name="people"
start_urls=[
'http://www.canada411.ca/res/%s/' % page for page in xrange(5192080000,5192090000)
]
def start_requests(self):
for url in self.start_urls:
yield SplashRequest(url, self.parse,
endpoint='render.html',
args={'wait': 2},
)
def parse(self,response):
for people in response.css('div#contact'):
yield{
'name': people.css('h1.vcard__name::text').extract_first().strip().title(),
'address': people.css('div.vcard__address::text').extract_first().strip().split(',')[0].strip(),
'city': people.css('div.vcard__address::text').extract_first().strip().split(',')[1].strip().split(' ')[0].strip(),
'province': people.css('div.vcard__address::text').extract_first().strip().split(',')[1].strip().split(' ')[1].strip(),
'postal code': people.css('div.vcard__address::text').extract_first().split(',')[2].strip().replace(' ',''),
'phone': people.css('span.vcard__label::text').extract_first().replace('(','').replace(')','').replace('-','').replace(' ',''),
}
也許您正在抓取的網站已開始顯示驗證碼 – Umair
有趣的,任何解決方案? –
我無法發佈代碼/解決方案,我建議您在沒有獲取數據的情況下將響應的HTML保存在文件中,然後在瀏覽器中打開該HTML文件以查看該頁面上不存在名稱,地址等原因 – Umair