所以我想从页面获取下载链接列表:
soup = BeautifulSoup(driver.page_source)
linky=soup.find_all(name='a', href=re.compile('download.php'))
这会向我返回所有链接的列表:
[<a href="download.php/947983/adam.zip"><img "="" alt="Download" src="browse_dl.png" style="style=" title="Download Adam"/></a>,
<a href="download.php/947981/barb.zip"><img "="" alt="Download" src="browse_dl.png" style="style=" title="Download Barb"/></a>,
<a href="download.php/947972/chris.zip"><img "="" alt="Download" src="browse_dl.png" style="style=" title="Download Chris"/></a>,
<a href="download.php/947971/dan.zip"><img "="" alt="Download" src="browse_dl.png" style="style=" title="Download Dan"/></a>]
我想提取href链接和“下载”之后的img标题,然后将它们放入元组中。
所以我将有一个类似以下的列表:
[(download.php/947983/adam.zip, Adam)
(download.php/947981/barb.zip, Barb),
(download.php/947972/chris.zip, Chris),
(download.php/947971/dan.zip, Dan)]
我以为我可以将每个项目的href =“和” img之间的文本分割开,但是我不知道该怎么做,下一个问题是我也将如何提取标题? / p>
答案 0 :(得分:1)
这是解决您问题的方法,假设我们有一个 list_of_names ,其中包含您要提取的输入链接和名称,然后可以使用下面给出的代码来提取链接和名称:>
#!/usr/bin/python
import re
list_of_names= ['<a href="download.php/947983/adam.zip"><img "="" alt="Download" src="browse_dl.png" style="style=" title="Download Adam"/></a>',
'<a href="download.php/947981/barb.zip"><img "="" alt="Download" src="browse_dl.png" style="style=" title="Download Barb"/></a>',
'<a href="download.php/947972/chris.zip"><img "="" alt="Download" src="browse_dl.png" style="style=" title="Download Chris"/></a>',
'<a href="download.php/947971/dan.zip"><img "="" alt="Download" src="browse_dl.png" style="style=" title="Download Dan"/></a>']
links=[]
names=[]
for row in list_of_names:
links.append([x.strip() for x in re.split(r"href=\"(.*)\"><img", row)][1])
names.append([x.strip() for x in re.split(r"title=\"Download (.*)\"\/>", row)][1])
desired_list=list(tuple(zip(links,names)))
print(desired_list)
如果编译此脚本,则可以获得所需的输出:
python -i code_for_desired_output.py
[('download.php/947983/adam.zip', 'Adam'), ('download.php/947981/barb.zip', 'Barb'), ('download.php/947972/chris.zip', 'Chris'), ('download.php/947971/dan.zip', 'Dan')]