Python BeautifulSoup4 - 从多个部分/表中刮取部分/表头和值

时间:2018-04-15 23:50:38

标签: python web-scraping beautifulsoup

我试图通过以下页面抓取与上下文信息的链接:https://www.reddit.com/r/anime/wiki/discussion_archive/2018。我可以使用Python使用BS4来获得链接,但是拥有与链接相关的年份,季节,标题和剧集是理想的选择。所需的输出如下所示:

enter image description here

我已经开始使用下面的代码了,但是我不知道如何遍历代码以捕获每个季节/标题的部分内容:

import requests
from bs4 import BeautifulSoup

session = requests.Session()

link = 'https://www.reddit.com/r/anime/wiki/discussion_archive/2018'

request_2018 = session.get(link, headers={'User-agent': 'Chrome'})
soup = BeautifulSoup(request_2018.content, 'lxml')

data_table = soup.find('div', class_='md wiki')

这是BS4可以实现的吗?谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

修改

criteria = {'class':'md wiki'} # so it can reuse later
data_soup = soup.find('div', criteria)
titles = data_soup.find_all('strong')
tables = data_soup.find_all('table')

请尝试以下操作:

titles = soup.find('div', {'class':'md wiki'}).find_all('strong')
data_tables = soup.find('div', {'class':'md wiki'}).find_all('table')

最好将find的第二个参数放入dict中,find_all将返回与您的搜索匹配的所有元素。