Python网络爬虫实战1:百度新闻数据爬取

本文介绍如何使用Python爬取百度新闻的网页源代码,并利用正则表达式提取新闻标题、链接、来源及日期等信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一.  获取网页源代码

1.  四行代码获取(有时不灵)

2. 五行代码获取(常用方法)

二、分析网页源代码信息

方法1:F12方法

方法2:右击选择“查看网页源代码”

方法3:在Python获得的网页源代码中查看

三、编写正则表达式爬取信息

1.  获取网页源代码

2.  获取信息的网址和标题

3. 获取信息的来源和日期

4.  数据清洗和打印输出

5.  完整代码


一.  获取网页源代码

1.  四行代码获取(有时不灵)

首先通过最简单的四行代码来尝试一下获取百度新闻的网页源代码:

import requests   # 导入requests库
url = 'https://www.baidu.com/s?tn=news&rtt=1&bsst=1&cl=2&wd=阿里巴巴'  # 输入网址
res = requests.get(url).text    # 发送请求获取网页
print(res)    # 输出网页源码

获取到的源码如下图所示:

       可以看到我们并没有真正获取到百度新闻的网页源代码,这是因为百度的资讯网站只同意浏览器发送的访问,不同意直接通过python发送的访问请求。这时我们就需要设置 requests.get()中headers参数,用来模拟浏览器进行访问


2. 五行代码获取(常用方法)

        Headers参数记录的其实就是网站访问者的信息,代表这个访问的浏览器是哪家的浏览器,headers中的User-agent(中文叫作用户代理)就是反映是用什么浏览器登录的,其设置方式如下所示:(这里就是Chrome浏览器的User-Agent)

        通过设定代理,可以爬取一些通过我们网络ip无法访问的网站。还有一些比较成熟的网站,如微博、豆瓣,它们会有非常高超的爬虫检测技术,这时我们就不能爬取它们的网站上的数据。 代理服务器的存在,可以应对网站禁止某个IP访问的反爬虫措施,代理服务器有着不同的匿名类型,通常我们会挑选中、高级别的代理服务器来访问网页。

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}

     设置完headers之后,在通过requests.get()请求的时候需要加上headers信息,这样就能模拟一个浏览器来访问网站,网站是可以识别我们是否在使用Python进行爬取,需要我们在发送网络请求时,把header部分伪装成浏览器。代码如下:

res = requests.get(url, headers=headers).text

完整代码如下:

import requests

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}   # 用户代理设置

url = 'https://www.baidu.com/s?tn=news&rtt=1&bsst=1&cl=2&wd=阿里巴巴'
res = requests.get(url, headers=headers).text  # 使用浏览器的用户代理向网站发送访问请求
print(res)

运行结

评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

简时刻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值