如何解决如何从此弹出窗口中抓取文本? [Python 和 Scrapy]
请注意 - 我非常缺乏经验,这是我的第一个“真正”项目。
我将尽我所能解释我的问题,如果某些术语不正确,请道歉。
我正在尝试抓取以下网页 - https://www.eaab.org.za/agent_agency_search?type=Agents&search_agent=+&submit_agent_search=GO
我可以抓取“名称”和“状态”,但我还需要在“完整详细信息”弹出窗口中获取一些信息。
我注意到当点击“完整详细信息”按钮时,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
不确定这是否有帮助,但这是弹出/花式框窗口:
我需要使用 Selenium 来点击按钮还是我只是遗漏了什么?任何帮助将不胜感激。
我非常渴望了解有关 Python 和抓取的更多信息。
谢谢。
解决方法
这是您需要从起始页中提取的 URL:
<a href="/listing_detail.php?agents_id=169039" class="agent-detail">Full Detail</a>
要获取弹出窗口的内容,请打开此提取的 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("-----------------------------------")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。