我之前问过这个问题无济于事。我试图弄清楚如何实现bs4从网站的源代码中获取用于下载的链接。我无法弄清楚的问题是链接是在动态内容库中。 我删除了之前的html代码段,如下所示
我们只有在手动从网站上获取源代码后才能使用此脚本获取链接:
import re
enter code here
line = line.rstrip()
x = re.findall('href=[\'"]?([^\'" >]+)tif', line)
if len(x) > 0 :
result.write('tif">link</a><br>\n<a href="'.join(x))
`result.write('tif">link</a><br>\n\n</html>\n</body>\n')
result.write("There are " + len(x) + " links")
print "Download HTML page created."
但只有进入网站ctrl + a - &gt;查看源 - &gt;选择所有&amp;复制 - &gt;粘贴到SourceCode.txt。我想从这一切中删除手工劳动。
我非常感谢任何信息/提示/建议!
修改
我想添加一些关于我们正在使用的网站的更多信息,图书馆内容只会在手动展开时显示。否则,内容(即,下载链接/ href * .tif)不可见。以下是我们看到的示例:
未打开库元素的网站源代码。
<html><body>
打开库元素后
源代码。
<html><body>
<h3>Library</h3>
<div id="libraryModalBody">
<div><table><tbody>
<tr>
<td>Tile12</td>
<td><a href="http://www.website.com/path/Tile12.zip">Button</a></td>
</tr>
</tbody></table></div>
</div>
扩展所有下载选项后的源代码。
<html><body>
<h3>Library</h3>
<div id="libraryModalBody">
<div><table><tbody>
<tr>
<td>Tile12</td>
<td><a href="http://www.website.com/path/Tile12.zip">Button</a></td>
</tr>
<tr>
<td>Tile12_Set1.tif</td>
<td><a href="http://www.website.com/path/Tile12_Set1.tif">Button</a></td>
</tr>
<tr>
<td>Tile12_Set2.tif</td>
<td><a href="http://www.website.com/path/Tile12_Set2.tif">Button</a></td>
</tr>
</tbody></table></div>
</div>
我们的最终目标是获取下载链接,只需输入网站网址即可。问题似乎与内容的显示方式有关(即动态内容仅在手动扩展库后才可见。
答案 0 :(得分:2)
不要尝试使用正则表达式解析HTML。 It's not possible和it won't work。请改用BeautifulSoup4:
+------------+
| Checksum |
+------------+
| 1679935596 |
+------------+
答案 1 :(得分:0)
您还可以查看PyQuery库,它使用来自JQuery的(子)CSS选择器集:
pq = PyQuery(body)
pq('div.content div#filter-container div.filter-section')