zoukankan      html  css  js  c++  java
  • python爬虫模块理解

    Url管理器:

      用来管理要抓取的url和已抓取的url,防止重复抓取和循环抓取,url管理器的五个最小功能:

        1、添加url到容器中

        2、获取一个url

        3、判断url是否已在容器中

        4、判断是否还有待爬取的url

        5、将待爬取的url移到已爬取的url

    网页下载器:

      网页下载器是爬虫的核心组件,它将url对应的互联网网页已html的形式保存在本地。目前有两种网页下载器,1:urllib2(python基础模块) 2:requests(第三库)

      urllib2三种下载网页的方法:

        1、简单方式下载

        2、添加data和http header

        3、添加特殊场景的处理器

    import http.cookiejar
    import urllib.request

    url = "http://www.baidu.com"

    print("one")
    response1 = urllib.request.urlopen(url)
    print(response1.getcode())
    print (len(response1.read()))

    print("two")
    request = urllib.request.Request(url)
    request.add_header("user-agent","Mozilla/5.0")
    response2 = urllib.request.urlopen(request)
    print(response2.getcode())
    print (len(response2.read()))

    print("three")
    cj = http.cookiejar.CookieJar()
    opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
    urllib.request.install_opener(opener)
    response3 = urllib.request.urlopen(url)
    print(response3.getcode())
    print(response3.read())

    网页解析器:

      从网页中提取有价值数据的工具,常用的网页解析器有以下三种,1、正则表达式,2、html.parser(自带的模块),3、beautiful Soup(第三方的插件),4、lxml;前面一种是基于字符串的解析,后面的三种是基于一种机构化的解析(DOM)。

    response1 = urllib.request.urlopen(url)
    print(response1.getcode())
    print (len(response1.read()))
  • 相关阅读:
    [College] C++字符串读入与进制转化-关于《实践教程》P10[程序]的一些总结
    [College] 二进制与机器数的几种形式
    [College] Hello World!
    [SinGuLaRiTy] 复习模板-数学
    ByteCTF 2020 KOP Writeup
    【题解】电子科技大学第十八届 ACM 程序设计竞赛
    【逆向】某 VR 驱动分析过程
    物联网框架 IoTivity 中间人攻击分析
    批处理工具 CAPI 逆向分析之 API Call
    DASCTF 2020 六月赛 Reverse Writeup
  • 原文地址:https://www.cnblogs.com/niuyg928/p/12237655.html
Copyright © 2011-2022 走看看