python爬取百度新闻所有的新闻的前1页 标题和URL地址

本文分享了一段Python代码,用于爬取百度新闻首页的新闻标题和URL,经测试可运行,并附有运行效果截图。

这是我自己写的一个爬取百度新闻的一个代码,欢迎大家多来讨论,谢谢!(自己已经测试可以使用,在文章最后见效果图)

'''
re模板:2.2.1
requests模板:2.18.4
bs4模板:4.6.0
json模板:2.0.9
爬取百度新闻所有的新闻的前1页 标题和URL地址
'''
import requests
import json
from bs4 import BeautifulSoup
import re

#获得每页新闻标题和新闻地址
def getPageInfo(url,page):
    newurl=url + str(page)
    res = requests.get(newurl)
    jd = json.loads(res.text)
    list1 = jd['data']['list']
    it = iter(list1)
    for one in it:
        print(
### 使用Python爬虫抓取百度新闻网站的数据 为了实现这一目标,需要先了解百度新闻网站的结构并选择合适的工具技术栈。对于静态面的内容获取,`requests` `BeautifulSoup` 是非常有效的组合;而对于涉及JavaScript渲染的部分,则可能需要用到像 Selenium 这样的自动化测试框架来模拟真实用户的浏览行为。 #### 准备工作 安装所需的第三方库: ```bash pip install requests beautifulsoup4 selenium pandas matplotlib seaborn ``` 这一步骤确保了能够顺利地发起网络请求、解析HTML文档、处理地理位置信息以及后续的数据存储与可视化分析[^3]。 #### 抓取流程 定义一个简单的函数用来访问指定URL,并提取其中感兴趣的信息片段,比如文章标题摘要链接等基本信息: ```python import requests from bs4 import BeautifulSoup def fetch_baidu_news(url): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)', } response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, "html.parser") news_items = [] for item in soup.select('.c-container'): try: title = item.h3.a.string.strip() link = item.h3.a['href'] news_item = {"title": title, "link": link} news_items.append(news_item) except AttributeError as e: continue return news_items ``` 上述代码通过向给定的目标地址发送GET请求获得响应体中的HTML源码,再利用BeautifulSoup对象对其进行DOM树构建操作以便于定位特定标签节点下的文本内容或属性值[^1]。 #### 数据保存 考虑到后期可能会涉及到大量数据管理查询需求,建议采用Pandas DataFrame作为临时容器承载已收集到的结果集,并最终导出至CSV文件供进一步研究使用: ```python import pandas as pd news_data = fetch_baidu_news('https://www.baidu.com/s?tn=news&word=科技') df = pd.DataFrame(news_data) df.to_csv('./baidu_news.csv', index=False, encoding='utf-8-sig') ``` 此部分实现了将列表形式的数据转换成表格视图的功能,同时指定了编码方式防止中文乱码现象的发生。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值