如何从此弹出窗口 window 中抓取文本? [Python 和 Scrapy]
How can I scrape the text from this popup window? [Python and Scrapy]
请注意 - 我经验不足,这是我的第一个 'real' 项目。
我会尽我所能解释我的问题,如果某些术语不正确,我们深表歉意。
我正在尝试抓取以下网页 - https://www.eaab.org.za/agent_agency_search?type=Agents&search_agent=+&submit_agent_search=GO
我可以抓取 'Name' 和 'Status',但我还需要在 'Full Details' 弹出窗口中获取一些信息 window。
我注意到单击 'Full Details' 按钮时 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
我从终端启动代码并将其导出到 .csv 文件。
不确定这是否有帮助,但这是弹出框/精美框 window:
popup window
我是否需要使用 Selenium 来单击按钮,还是我只是遗漏了什么?任何帮助将不胜感激。
我非常渴望了解更多关于 Python 和抓取的信息。
谢谢。
这是您需要从起始页中提取的URL:
<a href="/listing_detail.php?agents_id=169039" class="agent-detail">Full Detail</a>
要获取弹出窗口的内容-window 打开这个提取的 URL 作为另一个请求。
在 Full Detail
中您有 href
属性,您需要获取此 url 并发出请求。
也许对你有帮助:
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("-----------------------------------")
请注意 - 我经验不足,这是我的第一个 'real' 项目。
我会尽我所能解释我的问题,如果某些术语不正确,我们深表歉意。
我正在尝试抓取以下网页 - https://www.eaab.org.za/agent_agency_search?type=Agents&search_agent=+&submit_agent_search=GO
我可以抓取 'Name' 和 'Status',但我还需要在 'Full Details' 弹出窗口中获取一些信息 window。
我注意到单击 'Full Details' 按钮时 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
我从终端启动代码并将其导出到 .csv 文件。
不确定这是否有帮助,但这是弹出框/精美框 window:
popup window
我是否需要使用 Selenium 来单击按钮,还是我只是遗漏了什么?任何帮助将不胜感激。
我非常渴望了解更多关于 Python 和抓取的信息。
谢谢。
这是您需要从起始页中提取的URL:
<a href="/listing_detail.php?agents_id=169039" class="agent-detail">Full Detail</a>
要获取弹出窗口的内容-window 打开这个提取的 URL 作为另一个请求。
在 Full Detail
中您有 href
属性,您需要获取此 url 并发出请求。
也许对你有帮助:
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("-----------------------------------")