1
我剛開始抓取。我試圖通過使用Scrapy框架和Python 2.7下載內容來從網站http://www.indiabix.com/verbal-ability/spotting-errors/抓取問題和答案。我注意到,如果你查看其源代碼,你會發現,答案的每一個問題應該是在B標籤,但它不是:使用Scrapy抓取隱藏數據
<div class="div-spacer">
<p><span class="ib-green"><b>Answer:</b></span> Option <b class="jq-hdnakqb"></b></p>
<p><span class="ib-green"><b>Explanation:</b></span></p>
<p> No answer description available for this question. <b><a href="discussion-399">Let us discuss</a></b>. </p>
如果我們在網頁上檢查元素,我們可以看到正確答案爲文本標籤之間:答案:每個問題的選項A或B等,但HTML源代碼不包含。
爲了得到b標籤內的文本,我嘗試了使用xpath的15個查詢。 我編寫了下面代碼中最可能的4-5個查詢作爲註釋。
import scrapy
import urllib
import json
from errors1.items import Errors1Item
class Errors1Spider(scrapy.Spider) :
name = "errors1"
start_urls = ["http://www.indiabix.com/verbal-ability/spotting-errors/"]
def parse(self, response) :
i = 0
y = 0
j = json.loads(json.dumps(response.xpath('//td[contains(@id, "tdOption")]/text()').extract()))
x = json.loads(json.dumps(response.xpath('//div[@class="div-spacer"]/p[3]/text()').extract()))
#to get correct answer
#response.xpath('//div[@class = "div-spacer"]/p/b/text()').extract()
#response.xpath('//div[@class = "div-spacer"]/p[1]/b/text()').extract()
#response.xpath('//div[@class = "div-spacer"]/p//text()').extract()
#response.xpath('//b[@class = "jq-hdnakqb"]/text()').extract()
#response.xpath('string(//div[@class = "div-spacer"]/p/b/text())').extract()
while i<len(j) and y<len(x) :
item = Errors1Item()
item['optionA'] = j[i]
i+=1
item['optionB'] = j[i]
i+=1
item['optionC'] = j[i]
i+=1
item['optionD'] = j[i]
i+=1
item['explanation'] = x[y]
y+=1
yield item
有人可以幫助我從該網頁獲取答案內容。 謝謝
我試圖運行此完全相同的代碼,但我仍然不明白任何輸出和即時獲取一個空集。我想我可能配置錯了。你能把你的settings.py文件發給我嗎? – pratibha
@pratibha它們與鏈接答案中的完全相同。另外,確保飛濺正在運行。 – alecxe