簡體   English   中英

如何從這個彈出窗口 window 中抓取文本? [Python 和 Scrapy]

[英]How can I scrape the text from this popup window? [Python and Scrapy]

請注意 - 我非常缺乏經驗,這是我的第一個“真正”項目。

我將盡我所能解釋我的問題,如果某些術語不正確,我深表歉意。

我正在嘗試抓取以下網頁 - https://www.eaab.org.za/agent_agency_search?type=Agents&search_agent=+&submit_agent_search=GO

我可以抓取“名稱”和“狀態”,但我還需要在“完整詳細信息”彈出窗口 window 中獲取一些信息。

我注意到,當單擊“完整詳細信息”按鈕時,URL 保持不變。

下面是我的代碼的樣子:

import scrapy
from FirstScrape.items import FirstscrapeItem

class FirstSpider(scrapy.Spider):
    name = "spiderman"
    start_urls = [
        
        "https://www.eaab.org.za/agent_agency_search?type=Agents&search_agent=+&submit_agent_search=GO"
        
        ]
    
    def parse(self, response):
        item = FirstscrapeItem()
        item['name'] = response.xpath("//tr[@class='even']/td[1]/text()").get()
        item['status'] = response.xpath("//tr[@class='even']/td[2]/text()").get()
        #first refers to firstname in the popup window
        item['first'] = response.xpath("//div[@class='result-list default']/tbody/tr[2]/td[2]/text()").get()
        
        
        return item

我從終端啟動我的代碼並將其導出到 a.csv 文件。

不確定這是否有幫助,但這是彈出/花式框 window:

彈出 window

我需要使用 Selenium 來點擊按鈕還是我只是錯過了什么? 任何幫助將不勝感激。

我非常渴望了解更多關於 Python 和抓取的信息。

謝謝你。

這是您需要從起始頁中提取的 URL:

<a href="/listing_detail.php?agents_id=169039" class="agent-detail">Full Detail</a>

要獲取彈出窗口的內容,請打開此提取的 URL 作為另一個請求。

Full Detail中,您具有獲取此 url 並提出請求所需的href屬性。 也許它可以幫助你:

import scrapy
from scrapy.crawler import CrawlerProcess

class FirstSpider(scrapy.Spider):
    name = "spiderman"
    start_urls = [
        
        "https://www.eaab.org.za/agent_agency_search?type=Agents&search_agent=+&submit_agent_search=GO"
        
        ]
    
    def parse(self, response):
                
        all_urls = [i.attrib["href"] for i in response.css(".agent-detail")]
        for url in all_urls:
            yield scrapy.Request(url=f"https://www.eaab.org.za{url}", callback=self.parse_data)
        
    def parse_data(self, response):
        print(response.css("td::text").extract())
        print("-----------------------------------")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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