如何使用Python中的beautifulsoup刮取特定元素?

时间:2017-01-02 20:00:34

标签: python web-scraping beautifulsoup

我得到的PHP文件包含重复的代码,我很感兴趣。这里的例子

<a href="/browse.php?cat=298"><img src="/Static/icons/cat_black_mirror.jpeg" alt="Черное зеркало" title="Черное зеркало" align="left" class="category_icon" border="0" /></a>
    <span class="torrent_title"><b>Заткнись и танцуй (Shut Up and Dance)</b></span><br />
        Дата: <b>01.01.2017 20:51</b><br />Звук: <b>Многоголосый закадровый (LostFilm.TV)</b>
    </span>

我感兴趣的是torrent标题和链接。但是,试着去上课。然后寻找链接。这是示例

url = 'http://www.lostfilm.tv/browse.php?'
lost_f = requests.get(url, headers={'User-Agent': 'Mozilla/5.0'})
lost_soup = BeautifulSoup(lost_f.text,'html.parser',from_encoding="windows-1251")
for item in lost_soup.findAll('span', {'class': 'torrent_title'}):
print item.text
print item.previous_sibling.previous_sibling['href']

带来结果:名称+错误的链接。我怎么能得到洪流名称和相关链接?

2 个答案:

答案 0 :(得分:1)

这样的东西?

import re

url = 'http://www.lostfilm.tv/browse.php?'
lost_f = requests.get(url, headers={'User-Agent': 'Mozilla/5.0'})
lost_soup = BeautifulSoup(lost_f.text,'html.parser', from_encoding="windows-1251")
for a in lost_soup.find_all('a',{'href': re.compile('/browse\.php\?cat=\d+')}):
    print "HREF=", a['href'], "TITLE =", a.text

答案 1 :(得分:0)

<a href="/browse.php?cat=298"><img src="/Static/icons/cat_black_mirror.jpeg" alt="Черное зеркало" title="Черное зеркало" align="left" class="category_icon" border="0" /></a>

a标记包含网址href="/browse.php?cat=298"title="Черное зеркало",您可以获取此标记中的所有信息。

import requests, bs4
url = 'http://www.lostfilm.tv/browse.php?'
lost_f = requests.get(url, headers={'User-Agent': 'Mozilla/5.0'})
lost_soup = bs4.BeautifulSoup(lost_f.text,'lxml',from_encoding="windows-1251")

content_body = lost_soup.find('div', class_="content_body")
a_tags = content_body.select('a[href^="/browse.php?cat="]')
titles = [a.img.get('title') for a in a_tags]
links = [a.get('href') for a in a_tags]

for link, title in zip(links, titles):
    print(link, title)

出:

/browse.php?cat=130 Шерлок
/browse.php?cat=298 Черное зеркало
/browse.php?cat=296 Третий глаз
/browse.php?cat=297 Твин Пикс
/browse.php?cat=298 Черное зеркало
/browse.php?cat=297 Твин Пикс
/browse.php?cat=298 Черное зеркало
/browse.php?cat=219 Викинги
/browse.php?cat=295 Корпорация
/browse.php?cat=298 Черное зеркало
/browse.php?cat=297 Твин Пикс
/browse.php?cat=298 Черное зеркало
/browse.php?cat=294 Стрелок
/browse.php?cat=267 Человек в высоком замке
/browse.php?cat=297 Твин Пикс