[英]Why is xpath's extract() returning an empty list for the href attribute of an anchor element?
該站點進行API調用以檢索所有數據。 您可以使用scrapy shell查看該站點返回的響應。 scrapy shell 'https://www.udemy.com/courses/search/?src=ukw&q=accounting'
然后view(response)
。
您正在尋找的數據可通過以下api電話獲得:' https ://www.udemy.com/api-2.0/search-courses/?fields[locale] = simple_english_title & src = ukw & q =accounting '。 但是,如果您嘗試直接訪問此鏈接,您將獲得一個json對象,表示您無權執行此操作。 我是如何找到這個鏈接的? 在瀏覽器中加載URL,然后轉到開發人員工具上的網絡選項卡並查找XHR對象。
以下蜘蛛將首先向主鏈接發出請求,然后向api調用發出請求。 您必須解析返回的json對象以獲取數據。 如果您想為更多產品擴展此蜘蛛,您可能希望在api調用的結構中查找模式。
import scrapy
class UdemySpider(scrapy.Spider):
name = 'udemy'
newurl = 'https://www.udemy.com/api-2.0/search-courses/?fields[locale]=simple_english_title&src=ukw&q=accounting'
def start_requests(self):
urls = ['https://www.udemy.com/courses/search/?src=ukw&q=accounting'
]
for url in urls:
yield scrapy.Request(url=url, callback=self.api_call)
def api_call(self, response):
print("Working on second page")
yield scrapy.Request(url=self.newurl, callback=self.parse)
def parse(self, response):
#code to parse json object
`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.