Я работаю над приложением, которое использует beatifulsoup, Python, запросы и django. Я как бы схватил, как использовать красивый суп. Но сверление кажется, что разные элементы иногда путают. Я создал функцию, хотя и не лучшую, что царапины ссылки из сообщений и использует эти ссылки, чтобы перейти на страницу подробностей сообщений. И с этой страницы очистите данные сценария, содержащие URL-адрес facebook и связанное с ним изображение. Это кодКак извлечь значения из словаря, полученного из моих результатов beautifulsoup?
из моего scraper.py
def panties():
pan_url = 'http://www.panvideos.com'
html = requests.get(pan_url, headers=headers)
soup = BeautifulSoup(html.text, 'html5lib')
video_row = soup.find_all('div', {'class': 'video'})
def youtube_link(url):
youtube_page = requests.get(url, headers=headers)
soupdata = BeautifulSoup(youtube_page.text, 'html5lib')
video_row = soupdata.find('div', {'class': 'video-player'})
entries = [{'text': str(div),
} for div in video_row][3]
return entries
entries = [{'text': div.h4.text,
'href': div.a.get('href'),
'tube': youtube_link(div.a.get('href')),
} for div in video_row][:3]
return entries
из моего views.py
pan = panties()
context = {
'pan': pan,
}
return render(request, 'index.html', context)
и в моем шаблоне
{% for p in pan %}
Title: {{p.text}}<br>
Href: {{p.href}}<br>
Tube: {{p.tube}}<hr>
{% endfor %}
и Херес, что она возвращает
Title: Juanka - Esperando por ti (Official Video)
Href: http://www.videos.com/video/2962/juanka-esperando-por-ti-official-video-/
Tube: {'text': '<script type="text/javascript">jwplayer("video-setup").setup({file:"http://www.youtube.com/watch?v=QL4JFUHd71o",image:"http://i1.ytimg.com/vi/QL4JFUHd71o/maxresdefault.jpg",primary:"html5",stretching:"fill","controlbar":"bottom",width:"100%",aspectratio:"16:9",autostart:"true",logo:{file:"http://www.panvideos.com/uploads/gopcds-png5787dbcd53a72.png",position:"bottom-right",link:"http://www.panvideos.com/"},sharing:{link:"http://www.panvideos.com/video/2962/juanka-esperando-por-ti-official-video-/","sites":["facebook","twitter","linkedin","pinterest","tumblr","googleplus","reddit"]}});</script>'}
моя вещь, я только хочу
http://www.youtube.com/watch?v=QL4JFUHd71o
и
http://i1.ytimg.com/vi/QL4JFUHd71o/maxresdefault.jpg
которые являются видео и изображения соответственно. Как я могу это сделать. Мой код не установлен в камне, и я не против его изменения, чтобы он работал. Спасибо за любой совет, который я продвигаю.
Здравствуйте спасибо для ответа. Но как я смогу соответствовать этому коду. Ваше решение не работает так, как вы объяснили это с помощью моего кода, потому что p.tube или суп по вашему определению находится в шаблоне. так что я не могу сделать это import re s = re (". setup (", soup) soup = soup [s.end: -2] – losee
Не могли бы вы взять то, что у вас есть, и написать свой код? t знать, с чего начать. Когда я попытался использовать s = re (".setup (", soup) Я получил ошибку« re not callable » – losee
см. мои предыдущие ответы выше – losee