1. 什么是爬虫?
像一只蜘蛛一样,在互联网上搜索-访问-下载-保存需要的信息。(伪造浏览器)
需要注意:有些站点会有防爬取的指令限制—robots.txt
原理:每一个URL都是唯一的,根据获取到的URL获取需要的内容
2. 爬去汽车之家新闻
首先安装所需要的两个模块requests,BeautifulSoup4
Pip3 install **
导入模块import requests
分GET/POST两种请求方式
返回值是一个对象,用.text转换成字符串
注意编码问题:.apparent_encoding获取当前字符编码格式,用.encoding定义编码格式(编码不对大部分情况下会出错! 个别情况:比如原本是GB2312,现用GBK也是可以的-父类兼容子类)
导入模块import BeautifulSoup4
根据返回的字符串找到需要的内容(web前端编写规则:id具有唯一性,class不具有)
soup = Beautifulsoup.(ret.text,’html.parser’) #解析器:html.parser / lxml 用来解析字符串
soup.find(name=’标签名’,id=’ID’)
.string获取当前标签里的内容 #比如<div id=”list_01”>123</div> .string就能得到123
3. 登陆抽屉并点赞
主要知识点:cookies和reusest headers 的妙用
Cookies:为了让服务器端辨别客户端身份而存放在客户端的一组数据。
Reusest Headers:告诉浏览器自己的身份信息,这里主要用到的是useragent。
经过测试得到了抽屉的爬虫流程:
- 首先带着‘请求体’get首页 #1.这里只加了useragent 2.获取未授权的cookie
- 然后进行post登录,需要携带之前已获取但未授权的cookie和用户信息进行cookie授权
- 携带已授权的cookie‘get’新闻首页,获得每个新闻的ID
- 循环 为每个新闻ID进行点赞操作(get)
4. 登录GitHub 并获取个人信息
-
- 获取登录页面中的cookie和隐藏在from标签内的token #用chorme观察登录时需要携带这个token。
- 携带已获取好的token和cookie,向登录地址发送POST请求,携带用户信息(data)#把未授权的cookie提交给服务器做认证授权。
- 跟抽屉的验证规则类似----携带已授权的cookie访问用户信息页面并用bs4解析所需要的信息,最后print格式化输出。
5. 我遇到的问题
- 解耦合是什么意思? 耦合是指两个模块之间发生了关系--不懂......
- 编写规范问题 http://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/
- 暂时理解不了“效验”这个东西,是对结果做一个if判断吗?……
- 整个程序能正常运行下来,也没有异常呀…是做预判吗……
- 这个多注释是故意加上去的,当时也不知道编写规范,就是为了能让自己更好的记住一些知识,特地加上去的。
- 这个我当时也考虑了,要不要做一个input,后俩为了自己测试方便就直接写的明文。
- 不是很明白这句话的意思,还需深入研究。
- 暂时还不会封装函数呢,还需要学习基础入门知识。
- 这个也是涉及到编写规范了。自己英语很烂,以后就用翻译插件,这样也能多认识几个单词。
6. 总结
这只是一个开始,学到的知识连冰山一角都算不上。
python之路还要很长很长,找到正确的方向,剩下的就是埋下头去学习。 --Mobs