[英]No data after scraping a website
我想使用Scrapy從網站https://www.internationaltelecomsweek.com抓取所有名稱。
這在項目文件中。
import scrapy
class ItwItem(scrapy.Item):
name = scrapy.Field()
這是我的蜘蛛。
import scrapy
from itw.items import ItwItem
class ItwSpider(scrapy.Spider):
name = 'itw'
allowed_domains = ['https://www.internationaltelecomsweek.com']
start_urls = ['https://www.internationaltelecomsweek.com/this-year/companies-attending']
def parse(self, response):
data= json.loads(response.body)
for i in data:
item["name"] = i["DisplayName"]
return item
當我運行scrapy時,我只會得到一個空白的csv文件。 我究竟做錯了什么?
似乎與會者列表是動態生成的,並且每個與會者都以JSON對象的形式返回。
將站點加載到scrapy shell
並查看view(response)
以查看您的蜘蛛實際可以讀取的內容。 您會看到該頁面未返回任何內容,在瀏覽器中您可以看到與會者的位置。
如果檢查網絡選項卡以查看將哪些請求傳遞到服務器,則將看到從該URL傳遞與會者列表,每個URL作為JSON對象傳遞。
您需要做的是:解析生成JSON對象的URL並在scrapy中使用JSON處理它們:
import json
data = json.loads(response.body)
for i in data:
item["name"] = i["DisplayName"]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.