博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
手动爬虫之流程笔记1(python3)
阅读量:6263 次
发布时间:2019-06-22

本文共 1571 字,大约阅读时间需要 5 分钟。

一、引入拓展库

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

你可能感兴趣的文章
Openstack Nova 源码分析 — RPC 远程调用过程
查看>>
Python 小知识点(9)--反射
查看>>
.NET4.0的并行调试窗(Parallel Tasks)如何调出
查看>>
SpringMVC 入门
查看>>
20135108李泽源 Java实验一
查看>>
创建元素
查看>>
Git远程操作
查看>>
JS获取URL中参数值
查看>>
java 项目的jar 反编译后 压缩回去 命令
查看>>
单链表及简单应用
查看>>
C#反射技术
查看>>
jdk源码分析ArrayDeque
查看>>
伸缩布局flex
查看>>
【秦九韶算法】【字符串哈希】bzoj3751 [NOIP2014]解方程
查看>>
用JS实现任意导航栏的调用
查看>>
【GDOI2018】所有题目和解题报告
查看>>
【BZOJ】3302: [Shoi2005]树的双中心 && 2103: Fire 消防站 && 2447: 消防站
查看>>
存储过程与触发器面试
查看>>
CSS系列:在HTML中引入CSS的方法
查看>>
Orcale约束-------檢查約束
查看>>