如何爬取网站多页内容并解析生成Pandas DataFrame?
多页网页爬取并生成DataFrame
1. 多页内容爬取
循环请求目标网站第1至第9页的内容,使用requests发起HTTP请求,再通过BeautifulSoup解析页面HTML:
import requests from bs4 import BeautifulSoup as bs for page in range(1,10): url = f"https://www.consilium.europa.eu/en/press/press-releases/?page={page}" res = requests.get(url) soup = bs(res.text, 'lxml')
2. 数据解析
从解析后的页面中定位所有符合指定类名的<li>元素,逐一提取每个元素内的发布日期、标题、描述和详情链接,存入对应列表:
soup_content = soup.find_all('li', {'class':['list-item ceu clearfix','list-item gsc clearfix','list-item euco clearfix','list-item eg clearfix' ]}) datePublished = [] headline = [] description =[] urls = [] for i in range(len(soup_content)): datePublished.append(soup_content[i].find('span', {'itemprop': 'datePublished'}).attrs['content']) headline.append(soup_content[i].find('h3', {'itemprop': 'headline'}).get_text().strip()) description.append(soup_content[i].find('p', {'itemprop': 'description'}).get_text().strip()) urls.append('https://www.consilium.europa.eu{}'.format(soup_content[i].find('a', {'itemprop': 'url'}).attrs['href']))
注:已修正原代码中链接提取的逻辑错误,确保每个条目对应自身的详情链接,而非重复提取页面首个链接。
3. 生成DataFrame
将提取到的四类数据打包,用pandas生成结构化的DataFrame并指定列名:
import pandas as pd df = pd.DataFrame(data = zip(datePublished, headline, description, urls), columns=['date','title', 'description', 'link']) print(df)
内容的提问来源于stack exchange,提问作者user21084142
相关产品推荐
相关产品推荐

