在这个信息爆炸的时代,数据成为了最宝贵的资源之一。网络爬虫,作为获取数据的重要工具,它能够自动地从互联网上抓取信息,帮助我们从海量的网页中提取有价值的数据。无论是市场研究、学术分析还是个人兴趣,掌握网络爬虫技术都能让你在数据的海洋中游刃有余。
本章做的是一个比较简单的python爬虫,非常适合初学者练手
看完本章希望能在不看回看本篇文章的情况自己独立完成,锻炼能力
资源也已经跟本文站进行资源绑定,可以自行下载浏览(免费)
目录
导入
在真是开始之前,我们先导入需要使用到的库:
import urllib.request
import urllib.parse
主程序
然后可以创建一个主程序
if __name__ == "__main__":
kw = input('请输入需要爬取的贴吧名: ')
begin_page = int(input("请输入起始页码: "))
end_page = int(input("请输入结束的页码: "))
这里相当于是先做好判断,判断需要爬取的贴吧名称是什么,然后大概是第几页到第几页
先进贴吧主页观察他的url
随便进一个页面看看,然后观察他第一页到第二页的规律:
第一页的url:https://tieba.baidu.com/f?kw=lol%E9%99%AA%E7%8E%A9&ie=utf-8&pn=0
第二页的url:https://tieba.baidu.com/f?kw=lol%E9%99%AA%E7%8E%A9&ie=utf-8&pn=50
第三页的url:https://tieba.baidu.com/f?kw=lol%E9%99%AA%E7%8E%A9&ie=utf-8&pn=100
我可以观察到,每一页他的pn都加了五十,那么我们就可以粗略的判断
pn每加50,访问的页数就加1
然后紧接着之前的代码完善主程序:
url = "http://tieba.baidu.com/f?"
key = urllib.parse.urlencode({"kw":kw})
url = url + key
tieba_spider(url, begin_page, ende_page)
这里相当于是传入了贴吧的url,再将自己需要爬取的贴吧进行编码
接着把url和编码内容拼在一起成为新的url
等一下再创建一个tieba_spider的函数
这里先打印一下新的url看看效果:
print(url)
以下就是实际效果:
请输入要爬取的贴吧名: lol
请输入起始页: 1
请输入结束页: 2
http://tieba.baidu.com/f?kw=lol
构建爬虫调度器
接着还是写tieba_spider:
def tieba_spider(url, begin_page, end_page):
"""
作用:贴吧爬虫调度器,负责组合处理每个页面的url
"""
for page in range(begin_page, end_page):
pn = (page - 1) * 50
file_name = "第" + str(page) + "页.html"
full_url = url + "&pn=" + str(pn)
html = load_page(full_url, file_name)
write_page(html, file_name)
这里的代码很好理解,但多了load_page和write_page两个方法,正是等一下我们就需要创建的
获取到文件
def load_page(full_url, file_name):
"""
作用:根据url发送请求,获取服务器响应文件
"""
header = {
"User-Agent": ""
}
request = urllib.request.Request(url, headers=header)
return urllib.request.urlopen(request).read()
相当于是构建请求头,接着构建好Request对象
最后返回我们的html
但是仅仅是获取到了html,我们还得保存
这就是write_page
保存本地
将获取到的文件保存到本地:
def write_page(html,file_name):
"""
作用:将html文件写入本地文件
"""
print("正在保存" + file_name)
with open(file_name, 'w', encoding='utf-8') as file:
file.write(html.decode("utf-8"))
将这些代码进行组装,也就完成了一个简单的百度贴吧爬虫
然后我们试验一下
请输入要爬取的贴吧名: lol
请输入起始页: 1
请输入结束页: 5
http://tieba.baidu.com/f?kw=lol
正在保存第1页.html
正在保存第2页.html
正在保存第3页.html
正在保存第4页.html
正在保存第5页.html
检查一下文件是否有问题
都是OK的,也就是说,爬虫到这里就完成了
----------
本文章仅供交流
原创不易,而且可以发发评论,别让我一直单机啊、
希望本文章的内容能帮助到你
谢谢~~~~~~~~~~~~~~~~~~~~~~~
,, ,,
;' (\____/) ;
/ (_oo_) \
/ (O) (O) \
( """""""""""""""""""""")
| |
| |
| |
| |
| |
\__________________/