簡體   English   中英

抓取網站后無數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM