#python #beautifulsoup #lxml
#питон #beautifulsoup #lxml
Вопрос:
Я пытаюсь извлечь URL-адрес видео, встроенный в страницу, используя BeautifulSoup и анализатор lxml. Я много искал, чтобы получить правильный код PYTHON для этого, но после многих дней безуспешно. Мой код пока выглядит так, как показано ниже —
import re
from bs4 import BeautifulSoup
import requests
url = 'http://telly-loans.com/watchvideo.php?id=0kw7cgyat4p7'
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36'}
with requests.Session() as session:
session.headers = headers
response = session.get(url)
soup = BeautifulSoup(response.content, "lxml")
response = session.get(soup.iframe['src'], headers={'Referer': url})
soup = BeautifulSoup(response.content, "lxml")
print re.search(r'http://"(.*?)"', soup.script.text).group(1)
У меня очень ограниченный опыт работы с python, и, должно быть, здесь чего-то не хватает. Кто-нибудь пробовал использовать похожие страницы и может помочь мне сделать это.
URL СТРАНИЦЫ — http://telly-loans.com/watchvideo.php?id=0kw7cgyat4p7
Часть HTML-кода с помощью IFRAME
<td>
<div id='div-gpt-ad-1466152083933-1' style='height:600px; width:160px;'>
<script type='text/javascript'>googletag.cmd.push(function() { googletag.display('div-gpt-ad-1466152083933- 1'); });
</script>
</div><!-- END TAG --
</td>
<td>
<IFRAME SRC="http://watchvideo2.us/embed-0kw7cgyat4p7-540x304.html" FRAMEBORDER=0 MARGINWIDTH=0 MARGINHEIGHT=0 SCROLLING=NO WIDTH=540 HEIGHT=304> </IFRAME>
</td>
Комментарии:
1. Пожалуйста, включите пример фрагмента HTML, который показывает ту же проблему, а не ссылку на внешнюю веб-страницу. Если они решат изменить способ кодирования сайта и ваш код начнет работать на нем, этот вопрос станет непонятным.
2. Добавлен раздел HTML с iframe
3. Вероятно, вы отбрасываете неправильное место. Смотрите
http://watchvideo2.us/embed-0kw7cgyat4p7-540x304.html
4. @ppaulojr если только это не тот фактический URL, который он пытается получить.
5. Почему ваше регулярное
r'http://"(.*?)"'
выражение содержит двойные кавычки"
? Вы должны использоватьr'http://(.*?)'