一、引入拓展库

  由于刚刚起步学习爬虫,故从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()

  

转载于:https://www.cnblogs.com/xiaomingzaixian/p/7107386.html

手动爬虫之流程笔记1(python3)相关推荐

  1. 手动爬虫之京东笔记本栏(ptyhon3)

    1 import urllib.request as ur 2 import urllib.error as ue 3 import re 4 # 目标网址 5 url = 'https://list ...

  2. 51自学网python爬虫_Python爬虫基本流程

    爬虫定义 爬虫是请求网站并提取自己所需要数据的过程.通过我们的程序,可以代替我们向服务器发送请求,然后进行批量的数据下载. 爬虫基本流程 发起请求 通过url向服务器发送requests请求,请求可以 ...

  3. python爬虫流程-Python:爬虫处理流程及网页解析

    爬虫处理流程: 将互联网上的网页获取到本地 对网页进行解析 网页解析是从网页中分离出我们所需要的.有价值的信息,以及新的待爬取的URL. 网页的解析的方法: 正则表达式(采用模糊匹配的方式,找出我们所 ...

  4. python基础代码事例-学习笔记:python3,代码。小例子习作(2017)

    http://www.cnblogs.com/qq21270/p/7634025.html 学习笔记:python3,一些基本语句(一些基础语法的代码,被挪到这里了) 日期和时间操作 http://b ...

  5. linux内核ufs设备树,Linux内核初始化流程笔记

    Linux内核初始化流程笔记 分类: LINUX 作者:gfree.wind@http://www.doczj.com/doc/fc580419c1c708a1294a4409.html 博客:htt ...

  6. 无敌python爬虫教程学习笔记(一)

    python爬虫系列文章目录 无敌python爬虫教程学习笔记(一) 无敌python爬虫教程学习笔记(二) 无敌python爬虫教程学习笔记(三) 无敌python爬虫教程学习笔记(四) 本文目录 ...

  7. 无敌python爬虫教程学习笔记(二)

    系列文章目录 无敌python爬虫教程学习笔记(一) 无敌python爬虫教程学习笔记(二) 无敌python爬虫教程学习笔记(三) 无敌python爬虫教程学习笔记(四) 手刃一个小爬虫 系列文章目 ...

  8. 宏基因组单个样本数据处理流程笔记

    宏基因组单个样本数据处理流程笔记 前言 数据预处理 质量控制 去除接头序列 去除宿主序列 物种注释 Kraken2注释 Krona制图 序列组装 MEGAHIT序列组装 SPAdes序列组装 功能注释 ...

  9. 爬虫的基本原理:网络爬虫、爬虫基本流程、解析方式、保存数据

    爬虫的基本原理:网络爬虫.爬虫基本流程.解析方式 网络爬虫(Web crawler),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,它们被广泛用于互联网搜索引擎或其他类似网站,可以自动采集 ...

最新文章

  1. Intellij IDEA 竟然把 Java8 的数据流问题这么完美的解决掉了!
  2. [渝粤教育] 西南科技大学 货币银行学 在线考试复习资料(1)
  3. Windows 电脑命令一览
  4. 存储过程中“ 警告: 聚合或其他 SET 操作消除了 Null 值” 导致错误的解决
  5. 硬盘空间分析工具 WizTree(转载)
  6. 计算机应用基础本科答案排序,计算机应用基础本科操作题
  7. mysql innodb_large_prefix_那些从MySQL5.6升级到5.7的坑--innodb_large_prefix-阿里云开发者社区...
  8. Intel Multiprocessor System Architecture
  9. 使用SQLyog创建MySQL数据库
  10. LaTex 英文期刊论文模板
  11. 基于php网上书店存在问题及解决方案,基于PHP的网上书店系统设计与实现
  12. 震撼!七大议题全数入选!九州云与您相约温哥华
  13. typescript4.2 新特性
  14. LiveData去除粘性
  15. Python测试三角函数的正交性
  16. 【餐厅点餐平台|一】项目描述+需求分析
  17. 3.2.3 Quantization Techniques(HDR量化)(Advanced High Dynamic Range Imaging)Schlick TMO
  18. Apple ID,APP ID,Bundle ID,iOS Certificates,iOS Provisioning Profiles各自含义以及之间的关系
  19. 掩码认证消息(MAM)详细介绍
  20. 纯html+css炫酷地球仪动画效果

热门文章

  1. 缓存依赖中cachedependency对象
  2. Web服务器的配置与管理(2) 虚拟主机技术
  3. C#中的三种委托方式:Func委托,Action委托,Predicate委托
  4. SQLSERVER锁知识
  5. 忍辱负重的小白兔们 - 验收准则的意义
  6. mysql hive 内置函数_Hive 内置函数
  7. java http post 传参数_HttpClient之带参数的post请求
  8. mybatis反射的核心类
  9. Netty 总结与面试答疑
  10. 如何向Spring Bean 中注入java.util.Properties?