手动爬虫之流程笔记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()
六、源代码:
import urllib.request as ur # 代理服务器的地址
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" # 添加报头
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) # 读取数据
data = ur.urlopen(req).read()
# 文件指向
fh = open(aim_file, "wb")
# 信息转档
fh.write(data)
# 关闭文件
fh.close()
手动爬虫之流程笔记1(python3)的更多相关文章
- 手动爬虫之京东笔记本栏(ptyhon3)
import urllib.request as ur import urllib.error as ue import re # 目标网址 url = 'https://list.jd.com/li ...
- Ubuntu下配置python完成爬虫任务(笔记一)
Ubuntu下配置python完成爬虫任务(笔记一) 目标: 作为一个.NET汪,是时候去学习一下Linux下的操作了.为此选择了python来边学习Linux,边学python,熟能生巧嘛. 前期目 ...
- scrapy爬虫框架学习笔记(一)
scrapy爬虫框架学习笔记(一) 1.安装scrapy pip install scrapy 2.新建工程: (1)打开命令行模式 (2)进入要新建工程的目录 (3)运行命令: scrapy sta ...
- 学习笔记:python3,代码。小例子习作(2017)
http://www.cnblogs.com/qq21270/p/7634025.html 学习笔记:python3,一些基本语句(一些基础语法的代码,被挪到这里了) 日期和时间操作 http://b ...
- 学习笔记:python3,代码。小例子习作
http://www.cnblogs.com/qq21270/p/7634025.html 学习笔记:python3,一些基本语句(一些基础语法的代码,被挪到这里了) 日期和时间操作 http://b ...
- python 之爬虫基本流程
python 之爬虫基本流程 一 用户获取网络数据的方式: 方式1:浏览器提交请求--->下载网页代码--->解析成页面 方式2:模拟浏览器发送请求(获取网页代码)->提取有用的数据 ...
- python 网络爬虫全流程教学,从入门到实战(requests+bs4+存储文件)
python 网络爬虫全流程教学,从入门到实战(requests+bs4+存储文件) requests是一个Python第三方库,用于向URL地址发起请求 bs4 全名 BeautifulSoup4, ...
- 手动爬虫之淘宝笔记本栏(ptyhon3)
1.这次爬虫用到了之前封装的Url_ProxyHelper类,源代码如下 import urllib.request as ur class Url_ProxyHelper: def __init__ ...
- 手动爬虫之报头及代理封装类(python3)
本人刚刚学习爬虫,见每次都需要添加报头比较繁琐,故将该过程封装为Url_ProxyHelper类,代码如下 import urllib.request as ur class Url_ProxyHel ...
随机推荐
- 浅谈CSRF攻击方式(转)
引自:http://www.cnblogs.com/hyddd/一.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one cli ...
- selenium2.0 --常用函数2
新建实例driver = webdriver.Chrome() 1.获取当前页面的Url函数 方法:current_url 实例: driver.current_url 2.获取元素坐标 方法:loc ...
- 算法----堆排序(heap sort)
堆排序是利用堆进行排序的高效算法,其能实现O(NlogN)的排序时间复杂度,详细算法分析能够点击堆排序算法时间复杂度分析. 算法实现: 调整堆: void sort::sink(int* a, con ...
- 如何在mysql下实现事务的提交与回滚
最近要对数据库的数据进行一个定时迁移,为了防止在执行过程sql语句因为某些原因报错而导致数据转移混乱,因此要对我们的脚本加以事务进行控制. 首先我们建一张tran_test表 CREATE TABLE ...
- DDR 复位
将FPGA代码和实际的数字电路对应起来. always @ (negedge clk_ref_200) begin if(ddr3_init_done) 'b10) 'b10 ...
- Git-查看远程分支、本地分支、创建分支
1.查看本地分支 $ git branch * br-2.1.2.2 master 2.查看远程分支 $ git branch -r origin/HEAD -> origin/master o ...
- PHP获得数组的交集与差集
PHP获得数组的交集与差集 作者:简明现代魔法图书馆 发布时间:-- :: 次阅读 服务器君一共花费了218. ms进行了6次数据库查询,努力地为您提供了提供了这个页面. 数组的交集 array_in ...
- python 同时遍历多个变量
最近在用python的时候,用到遍历多个变量: import sys import math F58=11491939491.7 F=[11429229079.7,11374540753.7,1132 ...
- Jquery学习笔记(4)--checkbox全选反选
可能有浏览器兼容性,注意html里的checked是一个属性,存在就默认选中. <!DOCTYPE html> <html lang="en"> <h ...
- ajax 传递参数中文乱码解决办法
/********Start***********/ /*获取地址栏参数*/ function getRequest(){ var url = location.search; //获取url中&qu ...