Найти - Пользователи
Полная версия: Проблема с BeautifulSoup
Начало » Python для новичков » Проблема с BeautifulSoup
1
Simuran
Добрый день! Попытался тут создать простое приложение, которое вытягивает со страницы в контакте значение поля “Мировоззрение” (оно представляет собой ссылку, в URL которой присутствует слово religion). Получилось следующее:

 import requests, bs4, re
r = requests.get('http://vk.com/antenor')
soup = bs4.BeautifulSoup(r.text, 'html.parser')
print(soup.find('a', href=re.compile('religion+')))

При запуске оно выдаёт мне None. Но почему? Буду благодарен за ответы.
BM21
Simuran
import requests, bs4, re r = requests.get('http://vk.com/antenor') soup = bs4.BeautifulSoup(r.text, ‘html.parser’) print(soup.find('a', href=re.compile('religion+')))
Надо подменить user агент в requests т.к для User Agent библиотеки requests, там стр. в др. виде отдается.
Примерно так:
 headers = {
    'User-Agent': 'Тут новый агент',
}
r = requests.get('http://vk.com/antenor', headers=headers)
Simuran
BM21
Надо подменить user агент в requests т.к для User Agent библиотеки requests, там стр. в др. виде отдается.
Попробовал сделать, как Вы сказали, но Питон мне выдал ошибку. Но, видимо, проблема действительно с requests, потому что в том, что оно выдаёт у меня, нет ссылки со словом religion. Но когда я открываю HTML-код в браузере, она там есть. Может быть, дело в том, что в контакте этот блок по умолчанию свёрнут?
BM21
Simuran
Причина в User Agent я тестировал коод о котором писал вот полный.
 import requests, bs4, re
headers = {
    'User-Agent': 'Юзер агент',
}
r = requests.get('http://vk.com/antenor', headers=headers)
print r.text
soup = bs4.BeautifulSoup(r.text, 'html.parser')
print(soup.find('a', href=re.compile('religion+')))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB