目录
前言
何为爬虫,其实就是利用计算机模拟人对网页的操作
例如 模拟人类浏览购物网站 模拟人类进行 12306 购票
使用爬虫前一定要看目标网站可刑不可刑 :-)
可以在目标网站添加/robots.txt 查看网页具体信息
例如对天猫 可输入 https://brita.tmall.com/robots.txt 进行查看
User-agent 代表发送请求的对象
星号*代表任何搜索引擎
Disallow 代表不允许访问的部分
/代表从根目录开始
Allow代表允许访问的部分
更多关于robots.txt文件细节可以自己去其他博主那里查看
在本例中 我爬取的百度热搜前30的新闻(本人原本打算爬取英雄联盟主页 数据中心 大乱斗胜率前五十的英雄信息 奈何不会实现延时爬取网页的操作 无奈只能爬百度热搜) 并且其大致信息放到Excel表格以及Flask网页中实现数据可视化 感兴趣的同学也可以对其它内容进行爬取
Disallow的意思和高中不让带手机的规定是一个道理
由于本人水平有限 本文章中的爬虫都是比较基础的东西
库函数准备
Python库的安装方法:
- 打开cmd命令提示符
- 输入pip install XXX(这个是你要装的库名称)
关于这些库的具体使用 可以接下来看我的操作
只需要简单掌握几个常用的函数即可
bs4
即BeautifulSoup
用来解析HTML网页,提取指定数据的。
其中详细的用法待会看我的演示。
re
正则表达式 用来匹配字符串中响应的字串。
关于正则表达式 可以去看菜鸟教程 里边讲的很详细
正则表达式 – 教程 | 菜鸟教程 (runoob.com)
urllib
是一个Python自带的HTTP请求库,可以操作一系列URL。
xlwt/xlrt
用于写入(write) / 读取(read),Excel表中的数据。
flask
这个库是用来只做一个简单的Web框架即网站,用于数据的可视化。
其实本人对于数据可视化的掌握也很浅薄,只是简单的将数据导入Web网页中。
jinja2
这个库的作用是为了实现在HTML网页中的字符中插入自变量的功能。
后端:
name="HQ"
前端:
<p>{
{name}}长得真帅!</p>
显示:
HQ长得真帅!
markupsafe
与Jinja共用 在渲染页面时用于避免不可信的输入,防止注入攻击(虽然没人会攻击你....)
数据爬取
数据爬取 和 数据可视化 两个py文件是分开的
数据爬取需要导入re bs4 urllib xlwt 四个库文件
网页爬取
使用一下的方法调用函数可以使函数调用关系更加清晰
if __name__=="__main__": #当程序执行时 调用一下函数
main()
def askurl(url):
head={
"User-Agent":'''Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36 Edg/97.0.1072.55'''
}
#用户代理 告诉服务器我只是一个普普通通的浏览器
requset=urllib.request.Request(url)
#发送请求
response=urllib.request.urlopen(requset)
#响应的为一个request对象
#通过read()转化为 bytes类型字符串
#再通过decode()转化为 str类型的字符串
#接受响应