爬虫(一) 爬虫概念、urllib库和各项准备

  1. 什么是爬虫?通俗都说就是在互联网上把数据爬取下来,再通过解析提取想要的内容
  2. 有哪些语言可以做爬虫?
(1)php,可以做,但是多进程,多线程支持的不好
(2)java,也可以做爬虫,但是代码冗余量大,重构成本大
(3)c、c++ 需要高能力,并非是好的选择
(4)python 语法简单,代码优美,学习成本低,支持的模块多,非常强大的框架scrapy。
通用爬虫:百度、360、搜狐、谷歌、必应
原理:
    (1)抓取网页
    (2)采集数据
    (3)数据处理
    (4)提供检索服务
    爬虫:baiduspider
    如何抓取新网站?
    (1)主动提交url
    (2)设置友情链接
    (3)百度会和DNS服务商合作,抓取新网站
    检索排名:
        竞价排名
        根据pagerrank值、访问量、点击量(SEO)
    robots.txt
        不想让百度爬取,可以编写robots.txt 自己写的程序不需要遵守这个协议

聚焦爬虫:

根据特定的需求,抓取指定的数据
思路:
    代替浏览器上网
    网页的特点:
        (1)网页都有自己唯一的url
        (2)网页的内容都是html结构
        (3)使用的都是http、https协议
    爬虫步骤
    (1)给一个url
    (2)写程序,模拟浏览器访问url
    (3)解析内容 ,提取数据


3. http协议

什么是协议?双方规定的传输形式
http协议:网站原理
    应用层的协议  ftp(21)
http(80)\https(443) SSH(22)
HTTP 和 HTTPS的区别主要如下:
1、https协议需要到ca申请证书,一般免费证书比较少,因而需要一定费用
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议
https=http+ssl
4、fiddler
1、配置
    tools==>options==>https
    选中:
2、抓包
    <> : html内容
    {json}:json数据,很有可能是个接口
    {css}:css文件
    {js}:js文件

    停止抓取:file==》capture  点击就切换

    点击请求,右边选中Inspectors
    右上:http请求信息
        raw:请求头部的详细信息
        webforms:请求所带参数
    右下:http响应信息
        点击黄色条进行解码
        raw:响应的所有信息
        header:响应头
        json:接口返回的内容、
    左下黑框,输入指令
        clear:清除所有请求
        select json:快速选择所有json请求
        select image:图片请求
        select html:html请求
        内容:搜索包括这个内容的所有请求。
5、urllib库:
模拟浏览器发送请求的库,python自带
python2:urllib  urllib2
python3:urllib.request  urllib.parse

 

字符串==》 二进制字符串之间的转化
    encode()   编码
    decode()    解码
        括号里面不写默认是utf-8
        写的话就写 GBK
urllib.request
    urlopen(url)
    urlretrieve(url,image_path)
urllib.parse
   quote  url编码函数
   unquote       url解码函数
   urlencode  给一个字典,将字典拼接为query_string,并且实现了编码的功能(详见2)
response
    read()       读取想要的内容,内容是字节类型
    geturl()        根据响应内容获取请求的url
    getheaders()    获取头部信息
    getcode()       获取状态码
    readlines()     按行获取
5、get方式
6、构建请求头部信息(反爬第一部)
   伪装自己的UA,让服务器认为是浏览器请求

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值