爬虫001

学习路线图

爬虫:

       1.页面请求库(requests,),

       2.数据提取(xpath,bs4,re正则)

       3.数据存储(文本格式txt,.csv,.json,mysql,mongodb,redis)

       4.动态页面的处理:selenium+浏览器,分析请求响应过程(ajax)

       5.验证码:

       6.cookie池和代理ip池

       7.scrapy框架

       8.分布式爬取:scrapy-redis组件,celery分布式框架

       9.scrapy项目部署:scrapyd

      10.数据去重策略

数据分析:数据分析概论,numpy类库,pandas库,matplotib库

数据结构和算法:时间复杂度,算法,常见的数据结构,链表,双向链表,栈,队列,双端队列,树,排序算法,搜索

人工智能:人工智能简介,机器学习和深度学习,机器学习开发流程,常见框架,特征工程,常见的算法

安装:

          pip install virtualenv

          pip install virtualenvwrapper-win

在D盘创建文件:D:\python\virtualenv,然后配置到环境变量中 

重新打开cmd窗口:输入>mkvirtualenv env1

 


 

爬虫:是一个程序或一个脚本,能够按照一定的规则批量爬取数据

爬虫分类:

        通用爬虫:搜索引擎的(百度自动爬取整个互联网),

        聚焦爬虫:聚焦爬虫在实施网页抓取时会对内容进行处理筛选,尽量保证只抓取与需求相关的网页信息。

        增量爬虫:更新,维护一个已有的网页的集合

        深度爬虫:url地址的检索深度,起始URL----筛选进入下一波URL.....(多次爬虫)

爬虫步骤:

       网页抓取,数据提取(标题,作者等用xpanth,bs4,re正则),数据存储

HTTP协议:

       超文本传输协议,互联网上应用最为广泛的协议

       默认端口80,基于TCP/IP通信协议来传递数据,应用层

HTTPS:

       HTTP的安全版,在HTTP下加入SSL层。

       SSL主要用于web的安全传输协议,在传输

       默认端口443

requests库

python编写,基于urllib,自称让HTTP服务人类

requests库特性

         支持HTTP连接的保持和连接池,

         支持使用cookie保持会话,

         支持文件上传,

         支持自动确定响应内容的编码,

         支持过程国际化的URL和POST数据自动编码

get和post区别:

         get参数以键值对拼接在地址栏上,参数数量有限,不安全,可以收藏

         post参数在请求头,参数数量理论上没有限制,相对安全,不可以收藏

chardet解码

常见的反爬措施:

      1.检测'User-Agent': 'python-requests/2.21.0'

      2.检测非人行为,封禁IP地址

      3.登录限制

绕过反爬的策略:

      1.伪造'User-Agent':"常见的浏览器User-Agent"

      2.a:设置随机的延时时间,b:设置代理IP(分类:透明,高匿,付费)

         西刺代理IP

       

    3.模拟登录:使用登录之后的cookies信息

get和post参数

       1.url,

       2.可选herders参数(设置用户代理)

      3.timeout:设置超时时间

      4.拼接url参数:get有params, post有data

      5.proxies代理ip

缓存:

     1.cookies客户端,安全性不高,保存登陆之后的信息

     2.sission服务器,密码安全数据等

 

"""
2、 什么是 http 协议?
超文本传输协议,基于TCP/IP通信协议来传递数据,应用层
浏览器作为HTTP客户端通过URL向http服务端(web服务端)发送请求,
web服务端根据接受的请求,向http客户端发送响应


3、 http 和 https 的区别?
http默认端口80,不安全,明码传输,
https默认端口443,加了ssl层加密传输 保障数据安全,需要ca认证


4、 如何审查页面元素?
浏览器中查看网络代码,点击右键检查(F12)


5、 get 方法和 pos 方法的区别?
get参数以键值对拼接在地址栏上,参数数量有限,不安全,可以收藏
post参数在请求头,参数数量理论上没有限制,相对安全,不可以收藏


6、 常见的状态码有哪些?
200 成功  
300 重定向  
400 调用没有默认值的get_argument函数 
404 服务器错误  
405 如果传入的请求使用了RequestHandler中没有定义的
HTTP方法 500 客户端错误



7、什么是爬虫?爬虫有哪些分类?
爬虫:
        是一个程序或一个脚本,能够按照一定的规则批量爬取数据
爬虫分类:
        通用爬虫:搜索引擎的(百度自动爬取整个互联网),
        聚焦爬虫:聚焦爬虫在实施网页抓取时会对内容进行处理筛选,尽量保证只抓取与需求相关的网页信息。
        增量爬虫:更新,维护一个已有的网页的集合
        深度爬虫:url地址的检索深度,起始URL----筛选进入下一波URL.....(多次爬虫)

8、 数据爬取的步骤有哪些?
  网页抓取,数据提取(标题,作者等用xpanth,bs4,re正则),数据存储
"""
# 9、案例:百度模拟搜索“长城”
import requests
kw = {"wd": "长城"}
headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"}
response = requests.get("http://tieba.baidu.com/?", params=kw, headers=headers)
print(response.text)
# 10、案例:用cookie模拟登陆人人网

import requests

headers = {"Cookie": "anonymid=jtoec891-vfkewi; depovince=HEN; jebecookies=fc60bf68-02ff-4c3a-ad5d-30b46c6d0d9d|||||; _r01_=1; JSESSIONID=abcjjXTklSYtH4onNe1Mw; ick_login=6d1788b4-443d-48ba-99bb-98075aedff86; _de=32B20555AD3784A6BF2D3D01B72FE013; p=a5789dbe5b40a071397f6944fee2a4de2; first_login_flag=1; ln_uact=17752558702; ln_hurl=http://head.xiaonei.com/photos/0/0/men_main.gif; t=cf965e59d474ac0691d42228550582ec2; societyguester=cf965e59d474ac0691d42228550582ec2; id=966924492; xnsid=4aed4a13; ver=7.0; loginfrom=null; jebe_key=2173c408-6000-4437-9054-59fe28e0350a%7C077a3e2b1c00096d5c13732ceee74ce5%7C1553521102769%7C1%7C1553521103042; wp_fold=0", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"}
response = requests.get("http://www.renren.com/966924492", headers=headers)
print(response.text)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值