• python爬虫实战


    我发觉看视频学习写代码  真的是个很难坚持的事情。一味地怪自己老走神,不如怪这种学习方法的不科学。

    笔记 代码 都是老师给写好,全程毫无参与感,怎么可能学的好,所以要自己写笔记。

    (一)python爬虫分类和robots协议

    1.爬虫的分类

    通用爬虫 :

    常见的就是搜索引擎。

    无差别的收集数据,存储,提取关键字,构建索引库,给用户提供搜索接口。

    爬取一般流程:

    聚焦爬虫:

    2.Robots协议

    很多网站都对应一个robots协议,告诉你哪些内容可以爬取,哪些内容不可以。

    (二)python爬虫urllib使用和进阶。

    1.HTTp请求和响应处理。

    爬虫其实就是通过HTTp协议访问网页,模拟人的行为,利用程序去获得数据。

    urllib包:

    (1)urllib.request用于打开和读写url

    (2)urllib.error包含了由urllib.request引起的异常

    (3)urllib.parse用于解析url

    (4)

    urllib.request模块:

    urlopen方法:

    打开一个url,可以是一个string,也可以是个request对象.

    urlopen(url,data,timeout)返回一个response,类文件对象(类文件对象会对应一些方法,可以测试看看是否支持)

    类文件对象 肯定支持上下文管理,会有两个很重要的模式方法,anter,acdent。

    data为none的话,发起get请求。如果data不为空的话,发起的是post方法。

    可以分别打印出response的多种属性值,其中read是返回的内容,我们比较在意这个结果。

     但是urlopen方法只能传递url和data这样的数据,不能构造http中的请求,例如useragent。

    源码中的useragent如下,很容易暴露自己是爬虫。

    #urllib.request.openerDirector

    class openerDirector:

         def __init__(self):

              client__version = 省略。。。

              self.addheaders = ...

    把自己进行伪装,不被查别出自己是爬虫程序。可以查看浏览器中的ueragent,将其复制出来,作为自己的useragent,这样网站就无法识别是否是爬虫程序,但是我们发现urlopen没有这样的参数可以让我们放置ueragent,但是request中有,那么我们利用request中的第三个参数,来设计useragent。

     (三)python爬虫URL编码和GET、POST请求

    对于get方法,把参数拼接在URL里面。

    url = ‘http://www.magedu.com/python?id=1&name=tom’

    对于post方法,单独新增一个body

    --------------------------------------------------------------------------

    from urllib import parse

    d= {

      'id':1,

     'name':'tom',

    'url':'http://www.magedu.com/python?id=1&name=tom'

    }

    u=parse.urlencode(d)

    print(u)

    ---------------------------------------------------------------------------

    打印出来的东西,

    id=1&name=tom&url=http%...................所有的东西都被转写。。

  • 相关阅读:
    《Linux内核设计与实现》读书笔记 第十八章 调试
    《Linux内核设计与实现》读书笔记 第五章 系统调用
    [题解] LuoguP5488 差分与前缀和
    [题解] LuoguP4655 [CEOI2017]Building Bridges
    [题解] Tenka1 Programmer Contest 2019 E
    [题解] LuoguP4284 [SHOI2014]概率充电器
    长链剖分学习笔记
    [题解] LuoguP4292 [WC2010]重建计划
    [题解] LuoguP6197 [EER1]礼物
    [题解] LuoguP3980 [NOI2008]志愿者招募
  • 原文地址:https://www.cnblogs.com/maowuyu-xb/p/11202888.html
Copyright © 2020-2023  润新知