zoukankan      html  css  js  c++  java
  • 手动爬虫之流程笔记1(python3)

    一、引入拓展库

      由于刚刚起步学习爬虫,故从urllib库开始

      首先引入urllib,这里主要用到urllib中request类

    import urllib.request as ur

    二、设置全局参数

      我把它分为三个变量:代理服务器IP、目标网址、存放路径。 

    # 代理服务器的地址
    proxy_add = "110.183.238.145:811"
    # 获取目标网址
    url = "https://www.baidu.com"
    # 设置目标文档(路径+文件名【包括后缀】)
    aim_file = "E:/workspace/PyCharm/codeSpace/books/python_web_crawler_book/chapter4/demo2/1.html"

      

    三、将爬虫模拟成浏览器访问页面

      由于urlopen不支持一些HTTP的高级功能,所以要想达到预期的访问效果,有两种方式。

      一是使用build_opener()修改报头,二是使用add_header()添加报头。本人更加倾向于第二种,使用方法如下

    # 添加报头
    req = ur.Request(url)
    req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0')

    四、设置服务器代理

    # 设置代理
    proxy = ur.ProxyHandler({'http': proxy_add})
    opener = ur.build_opener(proxy, ur.HTTPHandler)
    ur.install_opener(opener)

    五、爬行页面并信息存档

    # 读取数据
    info = ur.urlopen(req).read()
    fh = open(aim_file, "wb")
    # 信息转档
    fh.write(info)
    # 关闭文件
    fh.close()

    六、源代码:

     1 import urllib.request as ur
     2 
     3 # 代理服务器的地址
     4 proxy_add = "110.183.238.145:811"
     5 # 获取目标网址
     6 url = "https://www.baidu.com"
     7 # 设置目标文档(路径+文件名【包括后缀】)
     8 aim_file = "E:/workspace/PyCharm/codeSpace/books/python_web_crawler_book/chapter4/demo2/1.html"
     9 
    10 # 添加报头
    11 req = ur.Request(url)
    12 req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0')
    13 
    14 # 设置代理
    15 proxy = ur.ProxyHandler({'http': proxy_add})
    16 opener = ur.build_opener(proxy, ur.HTTPHandler)
    17 ur.install_opener(opener)
    18 
    19 # 读取数据
    20 data = ur.urlopen(req).read()
    21 # 文件指向
    22 fh = open(aim_file, "wb")
    23 # 信息转档
    24 fh.write(data)
    25 # 关闭文件
    26 fh.close()

      

  • 相关阅读:
    序列化二叉树
    把二叉树打印成多行
    按之字形顺序打印二叉树
    对称的二叉树
    二叉树的下一个节点
    java ee项目用gradle依赖打包
    spring cloud gateway 拦截request Body
    oauth2学习
    docker 应用
    gradle spring 配置解释
  • 原文地址:https://www.cnblogs.com/xiaomingzaixian/p/7107386.html
Copyright © 2011-2022 走看看