我有一千个类似于this page的HTML页面。你知道吗
对于每个HTML页面,我想下载HTML页面中链接的PDF文件。源代码显示所有这些链接出现在这两个文本块之间:<a style="color:#167bd5;font-size:13px;" href="javascript:void(0);" onclick="perviewPdf(this)" url="
和" target="_blank">
。我只需要添加一些额外的文本,这个额外的文本对于每个链接都是一样的。你知道吗
例如,如果HTML文档包含<a style="color:#167bd5;font-size:13px;" href="javascript:void(0);" onclick="perviewPdf(this)" url="./ppp/projManage/perview.do?fileName=安康高新区世纪大道物有所值分析5.pdf&ftpFileName=20160509120519529.pdf" target="_blank">
,我需要提取/ppp/projManage/perview.do?fileName=安康高新区世纪大道物有所值分析5.pdf&ftpFileName=20160509120519529.pdf
,并将http://www.cpppc.org:8082/efmisweb/
添加到前面,将&content=efmisweb&xsg=:8083/
添加到后面。你知道吗
我需要下载的PDF文件在这里:http://www.cpppc.org:8082/efmisweb/ppp/projManage/perview.do?fileName=fileName=安康高新区世纪大道物有所值分析5.pdf&ftpFileName=20160509120519529.pdf&content=efmisweb&xsg=:8083/
我正在考虑使用Python来提取我需要的文本,然后下载文件。下载HTML文件后,我可以想到两种可能的方法:
1)将HTML文件解析为文本字符串,使用find()
搜索子字符串
2)使用BeautifulSoup或HTMLParser等库解析HTML文件,这些库还可以查找子字符串。你知道吗
哪种方法可能更快?你知道吗
您应该使用BeautifulSoup解析HTML内容
下面是一个非常简单的用例示例:
输出:
美团教程:http://www.pythonforbeginners.com/beautifulsoup/beautifulsoup-4-python
以下是几种方法的时间比较:
如果您已经下载了所有HTML文件,则解析1000个文件需要:
html.parser
60秒。你知道吗下载一个页面需要2.27秒,因此以每秒两次并发下载的合理速率限制,下载所有页面大约需要19分钟。你知道吗
虽然使用字符串操作提取url确实更快,但与下载HTML所需的19分钟相比,速度微不足道。你知道吗
就我个人而言,我会使用lxml,因为它是最简单和足够快的。使用BeautifulSoup将使脚本运行时增加约3%,但对于更复杂的HTML,使用它可能比使用XPath更容易。你知道吗
相关问题 更多 >
编程相关推荐