【发布时间】:2015-11-24 15:10:30
【问题描述】:
我之前问过这个问题无济于事。我试图弄清楚如何实现 bs4 来获取用于从网站源中下载的链接。我无法弄清楚的问题是链接在动态内容库中。 之前的html sn-p我已经去掉了,看下面
只有在手动从网站抓取源代码后,我们才能使用此脚本抓取链接:
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 -> 查看源代码 -> 全选 & 复制 -> 粘贴到 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>
我们的最终目标是只需输入网站 url 即可获取下载链接。问题似乎在于内容的显示方式(即动态内容仅在手动扩展库后可见。
【问题讨论】:
标签: python html beautifulsoup data-extraction