我正在尝试提取此页面的名称和副标题(例如)。提取名称没有问题,但副标题未成功。通过使用Chrome中的inspect元素,我确定子标题文本“ Canada Census,1901”已嵌入如下:
<div class="person-info">
<div class="title ng-binding">Helen Brad in household of Geo Wilcock</div>
<div class="subhead ng-scope ng-binding" data-ng-if="!recordPersonCentric">Canada Census, 1901</div>
因此,我将脚本编写如下:
import urllib2
import re
import csv
from bs4 import BeautifulSoup
import time
def get_FamSearch():
link = "https://example.org/pal:/MM9.1.1/KH11-999"
openLink = urllib2.urlopen(link)
Soup_FamSearch = BeautifulSoup(openLink, "html")
openLink.close()
NameParentTag = Soup_FamSearch.find("tr", class_="result-item highlight-person")
if NameParentTag:
Name = NameParentTag.find("td", class_="result-value-bold").get_text(strip=True)
name_decode = Name.encode("ascii", "ignore")
print name_decode
SubheadTag = Soup_FamSearch.find("div", class_="subhead ng-scope ng-binding")
if SubheadTag:
print SubheadTag.get_text(strip=True)
get_FamSearch()
这是结果,而无法找到和提取子标题:
Helen Brad
[Finished in 2.2s]
您通过的页面urllib2
不包含div
withsubhead
类。实际标题是借助在浏览器端执行的javascript异步构建的。
所需数据的显示方式有所不同,这对我有用:
print Soup_FamSearch.find('dt', text='Title').find_next_sibling('dd').text.strip()
印刷:
Canada Census, 1901
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句