我已經創建了一個蜘蛛,它收集了具有匹配電話號碼的公司名稱列表。然後將其保存到CSV文件。使用來自相同URL的多個POST數據進行刮取
我然後想要使用CSV文件中的電話號碼作爲POST數據從另一個網站上抓取數據。我希望它通過相同的起始URL進行循環,但只是抓取每個電話號碼生成的數據,直到CSV文件中沒有更多數字。
這是我這麼遠:
from scrapy.spider import BaseSpider
from scrapy.http import Request
from scrapy.http import FormRequest
from scrapy.selector import HtmlXPathSelector
from scrapy import log
import sys
from scrapy.shell import inspect_response
from btw.items import BtwItem
import csv
class BtwSpider(BaseSpider):
name = "btw"
allowed_domains = ["siteToScrape.com"]
start_urls = ["http://www.siteToScrape.com/broadband/broadband_checker"]
def parse(self, response):
phoneNumbers = ['01253873647','01253776535','01142726749']
return [FormRequest.from_response(response,formdata={'broadband_checker[phone]': phoneNumbers[1]},callback=self.after_post)]
def after_post(self, response):
hxs = HtmlXPathSelector(response)
sites = hxs.select('//div[@id="results"]')
items = []
for site in sites:
item = BtwItem()
fttcText = site.select("div[@class='content']/div[@id='btfttc']/ul/li/text()").extract()
# Now we will change the text to be a boolean value
if fttcText[0].count('not') > 0:
fttcEnabled=0
else:
fttcEnabled=1
item['fttcAvailable'] = fttcEnabled
items.append(item)
return items
在分鐘,我剛纔一直試圖讓這個循環通過列表(PHONENUMBERS),但我還沒有設法讓那工作,所以遠。一旦我知道如何做到這一點,我就可以自己將它從CSV文件中提取出來。在當前狀態下,它僅使用列表中索引爲1的phoneNumber。
你能澄清一下這個問題嗎?您可以使用'for phoneNumbers:'中的''來遍歷Python中的列表。不過,我懷疑這不是你要問的。 – ChrisP
我能夠運行上面的代碼沒有任何錯誤,所以什麼不工作? – Talvalin