这就是我试图刮掉的东西:
<p>Some.Title.html<br />
<a href="https://www.somelink.com/yep.html" rel="nofollow">https://www.somelink.com/yep.html</a><br />
Some.Title.txt<br />
<a href="https://www.somelink.com/yeppers.txt" rel="nofollow">https://www.somelink.com/yeppers.txt</a><br />
我尝试了以下几种变体:
match = re.compile('^(.+?)<br \/><a href="https://www.somelink.com(.+?)">',re.DOTALL).findall(html)
我希望将线条与&#34; p&#34;标签和没有。 &#34; P&#34;标记仅发生在第一个实例上。在python很可怕,所以我很生疏,在这里搜索和google,似乎没有什么是相同的。谢谢你的帮助。当我被困住时,真的很感激我到这里的帮助。
所需的输出是一个索引:
<a href="Some.Title.html">http://www.SomeLink.com/yep.html</a>
<a href="Some.Title.txt">http://www.SomeLink.com/yeppers.txt</a>
答案 0 :(得分:3)
使用美丽的汤和请求模块将非常适合这样的事情,而不是像上面提到的评论者那样的正则表达式。
import requests
import bs4
html_site = 'www.google.com' #or whatever site you need scraped
site_data = requests.get(html_site) # downloads site into a requests object
site_parsed = bs4.BeautifulSoup(site_data.text) #converts site text into bs4 object
a_tags = site_parsed.select('a') #this will select all 'a' tags and return list of them
这只是一个简单的代码,它将从html网站中选择所有标记,并将它们存储在上面列出的格式的列表中。我建议您查看here有关bs4的精彩教程和here的实际文档。