2016-09-26 94 views
1

我试图通过搜索URL锚文本来使用BeautifulSoup从this页面中提取URL页面。我已经用BeautifulSoup尝试了几种不同的方法,包括一个不同的html解析器,但都没有成功。BeautifulSoup找不到匹配

代码:

import requests 
import re 
from bs4 import BeautifulSoup 

url = "http://forum.xda-developers.com/showthread.php?t=1916098" 

response = requests.get(url) 

soup = BeautifulSoup(response.content, "lxml") 

print(soup.find('a', text=re.compile('FULL OPTIMIZED'))) 

我在做什么错?欢迎替代想法。

回答

1

所以它被设置为无有在锚多个strings,你有几个选择,一是只认准字符串/文本和获取父:

print(soup.find(text="FULL OPTIMIZED").parent) 

二,检查

anchors = soup.select("a[href^=http://forum.xda-developers.com]") 
print(next(a for a in anchors if "FULL OPTIMIZED" in a.text)) 

中使用字符串中的字体标记并再次得到父:找到锚后文/串

print(soup.find('font', text=re.compile('Version')).parent) 

所有这三个会给你:

<a href="http://forum.xda-developers.com/attachment.php?attachmentid=3827565&amp;stc=1&amp;d=1469815165" target="_blank">FULL OPTIMIZED<font size="4"> Version</font></a>