【发布时间】:2017-09-04 03:22:26
【问题描述】:
这是我的第一个问题,如果我解释了任何错误,请原谅我。
我正在尝试从 python 中的特定网站抓取 url,并将链接解析为 csv。问题是当我在 BeautifulSoup 中解析网站时,我无法提取 url,因为当我在 python 中解析它时,我只能得到<div id="dvScores" style="min-height: 400px;">\n</div>,,而在那个分支下什么也没有。但是当我打开控制台并复制链接所在的表格并将其粘贴到文本编辑器时,它会粘贴 600 页的 html。我想做的是编写一个显示链接的 for 循环。 html的结构如下:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
#shadow-root (open)
<head>...</head>
<body>
<div id="body">
<div id="wrapper">
#multiple divs but i don't need them
<div id="live-master"> #what I need is under this div
<span id="contextual">
#multiple divs but i don't need them
<div id="live-score-master"> #what I need is under this div
<div ng-app="live-menu" id="live-score-rightcoll">
#multiple divs but i don't need them
<div id="left-score-lefttemp" style="padding-top: 35px;">
<div id="dvScores">
<table cellspacing=0 ...>
<colgroup>...</colgroup>
<tbody>
<tr class="row line-bg1"> #this changes to bg2 or bg3
<td class="row">
<span class="row">
<a href="www.example.com" target="_blank" class="td_row">
#I need to extract this link
</span>
</td>
#Multiple td's
</tr>
#multiple tr class="row line-bg1" or "row line-bg2"
.
.
.
</tbody>
</table>
</div>
</div>
</div>
</div>
</span>
</div>
</div>
</body>
</html>
我做错了什么?我需要自动化一个系统供 python 执行,而不是将 html 粘贴到文本并使用正则表达式提取链接。 我的python代码也在下面:
import requests
from bs4 import BeautifulSoup
r=requests.get("http://example.com/example")
c=r.content
soup=BeautifulSoup(c,"html.parser")
all=soup.find_all("span",id="contextual")
span=all[0].find_all("tbody")
【问题讨论】:
-
你能指定你想要的输出吗?网址是不是像:
http://www.mackolik.com/Mac/2581146/Kayserispor-Osmanlıspor-FK? -
@vold 是的,正确。对于每场比赛,球队名称之间都有一个链接。这就是我要提取的链接。
标签: python html json web-scraping beautifulsoup