【发布时间】:2022-01-23 07:51:06
【问题描述】:
我在互联网上搜索了很多。我找不到与下面类似的示例。我正在尝试从网页中提取文本。第一个 p 标签中没有定位线。第二定位部分具有定位线。拉取数据的时候只能拉取p标签的内容,也就是位置行。我无法提取另一个 p 标签的内容。我想知道如何在第一个和第二个 p 标签中提取数据?
页面来源的HTML代码:
<div class=" col-md-8">
<p>
<i class='fa fa-home main-color'></i> ORHAN MAH.İBRAHİM CAD. NO:35
<br>
<i class='fa fa-phone main-color'></i>
<a class="gri" href="tel:0508-2920344">0508-2920344 </a>
<br />
<i class='fa fa-clock-o main-color'></i>
<span class="red">19.01.2022</span>
</p>
<p>
<i class='fa fa-home main-color'></i> HAZAN MAH.ÖKTEM CAD. NO:13/B
<br>
<i class='fa fa-phone main-color'></i>
<a class="gri" href="tel:0584 837 23 70">0584 837 23 70 </a>
<br>
<i class="fa fa-map-marker main-color"></i>
<a class="gri" href="https://www.google.com/maps?q=35.554433,25.887766" target="_blank">Haritada</a>
<br />
<i class='fa fa-clock-o main-color'></i>
<span class="red">20.01.2022</span>
</p>
</div>
这是我用来从上面的 HTML 源中提取数据的 selenium 代码:
item = browser.find_elements_by_class_name("col-md-10")
urls = browser.find_elements_by_xpath("//div[@class=' col-md-10']/p/a[2]")
for i in zip(item,urls):
try:
address = i[0].find_element_by_css_selector("p").text.split("\n")[:2]
except:
address = None
try:
phone = i[0].find_element_by_xpath("//a[@class='gri'][1]").text
except:
phone = None
print(address)
print(phone)
try:
url = i[1].get_attribute('href').replace("https://www.google.com/maps?q=","")
except:
url = None
try:
date = i[0].find_element_by_xpath("//span[@class='red'][1]").text
except:
date = None
print(url)
print(date)
【问题讨论】:
-
您能否分享一个指向该页面的链接并说明您要在那里抓取哪些数据?另外,您当前的代码到底有什么问题?
-
问题有点混乱,我看到
div类col-md-8有2 个p标签?是否要提取 p 标签? -
这听起来像X-Y problem。与其寻求解决问题的帮助,不如编辑您的问题并询问实际问题。你想做什么?
标签: selenium web screen-scraping