2016-09-26 5 views
1

Я пытаюсь извлечь страницу URL с сайта this, используя BeautifulSoup, ища текст привязки 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)) 

использование Version строки в тег шрифта и снова получить родитель:

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>