【发布时间】:2019-07-10 12:11:09
【问题描述】:
您好,我正在尝试使用 Python 和 Beautiful Soup 来抓取网页。网页中有各种表格,其中包含我想要的结果,但我正在努力: 1) 找到合适的表 2)找到正确的两个单元格 3) 将单元格 1 和 2 分别写入字典键和值。
到目前为止,在发出请求并解析 HTML 之后,我使用:
URL='someurl.com'
def datascrape(url):
page=requests.get(url)
print ("requesting page")
soup = BeautifulSoup(page.content, "html.parser")
return(soup)
soup=datascrape(URL)
results = {}
for row in soup.findAll('tr'):
aux = row.findAll('td')
try:
if "Status" in (aux.stripped_strings):
key=(aux[0].strings)
value=(aux[1].string)
results[key] = value
except:
pass
print (results)
不幸的是,“结果”总是空的。我真的不确定我哪里出错了。谁能给我指点一下?
【问题讨论】:
-
可能有多种原因,包括(但不限于)动态生成的表格。如果您可以提供网址和预期结果,有人可以回答。
-
您查看过请求吗?您是否真的查看了被请求的真实 HTML(不是通过您的浏览器)?我将猜测您尝试抓取的内容实际上不在您请求的页面中。请对加载该网站时发出的所有请求进行一些调查。
-
无法提供帮助,因为我们无法在没有目标站点的情况下复制您的问题
-
这是我试图抓取的 URL 示例:sitem.herts.ac.uk/aeru/bpdb/Reports/2070.htm 是的,我查看了返回的 HTML,它似乎相当简单,虽然我不太了解真的是 HTML。
-
如果您准确指出您希望看到的返回值,这将有所帮助。
标签: python dictionary web-scraping html-table