python爬虫练习之用urllib模块来爬取百度贴吧指定内容指定页面的全网页内容,(版本1)

本文介绍了如何使用Python的urllib模块爬取百度贴吧特定内容页面的完整网页,并将其保存为.html文件。通过分析链接参数,设置请求头,编码链接并发起请求,最后将网页内容保存到本地。详细步骤包括解析链接、构造请求头、拼接URL、文件命名及内容存储。
摘要由CSDN通过智能技术生成

目标:

用urllib模块实现
根据搜索来获取指定贴吧内容网页,然后以’.html’格式直接保存网页,

可参考:

https://blog.csdn.net/xdc1812547560/article/details/107989273

计划

首先,引入模块,然后分步来完成
分三步:
1、分析百度网页链接来通过改变链接中的参数来获取指定页面
2、获取网页内容
3、保存

第一步

首先分析链接得出页面的变化与参数pn=‘?’有关

import urllib.request
import urllib.parse
import random

#1、分析百度贴吧网页链接
#第一页
#https://tieba.baidu.com/f?kw=%E7%BE%8E%E5%A5%B3&ie=utf-8&pn=0
#第二页
#https://tieba.baidu.com/f?kw=%E7%BE%8E%E5%A5%B3&ie=utf-8&pn=50
#第三页
# https://tieba.baidu.com/f?kw=%E7%BE%8E%E5%A5%B3&ie=utf-8&pn=100
#从网页链接分析来看,我们发现当pn=?改变时页面会改变,页数的规律 pn = (当前页数 - 1)*50


第二步

请求头

然后获取网页内容
首先设置请求头,这里使用两个User-Agent来随机交替使用

#2、获取网页内容
#因为可能爬取的页面过多,所以用多个user-agent来随机请求网页
headers_list = [{
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'},{
   'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11'}]
headers = random.choice(headers_list)

url拼接与请求

获取所需

获取需要爬取的贴吧名与开始页数,结束页数

# 获取搜索
sousuo = input('您要爬取的贴吧的贴吧名:')
# 开始页数
start_page = int(input('需要爬取的开始页数:'))
# 结束页数
end_pag
使用Python中的`urllib`模块爬取百度贴吧网页内容涉及以下几个步骤: 1. 导入所需的: ```python import urllib.request from bs4 import BeautifulSoup # 引入BeautifulSoup解析HTML ``` 2. 定义URL和请求头(模拟浏览器访问): ```python url = "https://tieba.baidu.com/" # 百度贴吧首页或其他具体页面地址 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } # 设置用户代理,避免被识别为机器人 ``` 3. 发送GET请求并获取网页内容: ```python response = urllib.request.Request(url, headers=headers) with urllib.request.urlopen(response) as response_obj: html_content = response_obj.read().decode('utf-8') ``` 4. 解析网页内容: ```python soup = BeautifulSoup(html_content, 'lxml') # 使用BeautifulSoup解析HTML # 找到你需要的内容,如帖子列表、文章等,可能需要用到`soup.find_all()`或`.select()`方法 content_items = soup.select('.post-content') # 假设.post-content是帖子内容的CSS选择器 ``` 5. 处理数据: ```python for item in content_items: post_text = item.get_text() # 获取文本内容 print(post_text) ``` 6. 结果保存或进一步处理: ```python # 可选:将抓取的数据写入文件或数据,或者做更复杂的分析操作 ``` 注意:在实际爬虫中,请遵守网站的robots.txt规则,并尊重版权,不要频繁发送请求导致服务器压力过大。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值