使用urllib编写python爬虫

新版python中,urllib和urllib2合并了,统一为urllib

(1)简单爬取网页

import urllib

content = urllib.request.urlopen(req).read().decode("utf-8")

(2)添加header

import urllib

req = urllib.request.Request(url)
req.add_header(‘User-Agent‘, ‘Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0‘)
req.add_header(‘Referer‘, ‘http://www.***.com‘)
my_page = urllib.request.urlopen(req).read().decode("utf-8")

(3)设置cookie

import urllib
import http.cookiejar

cj = http.cookiejar.LWPCookieJar()
cookie_support = urllib.request.HTTPCookieProcessor(cj)
opener = urllib.request.build_opener(cookie_support, urllib.request.HTTPHandler)
urllib.request.install_opener(opener)

FAQ:

1.请求url中有中文,报异常

解决办法:将中文部分使用urllib.parse.quote处理

关于urllib.parse.quote:

屏蔽特殊的字符、比如如果url里面的空格!url里面是不允许出现空格的。在 Python2.x 中的用法是:urllib.quote(text)Python3.x 中是urllib.parse.quote(text)按照标准,URL只允许一部分ASCII字符(数字字母和部分符号),其他的字符(如汉字)是不符合 URL 标准的。所以URL中使用其他字符就需要进行URL编码。URL中传参数的部分(query String),格式是:name1=value1&name2=value2&name3=value3 假如你的name或者value值中有『&』或者『=』等符号,就当然会有问题。所以URL中的参数字符串也需要把『&=』等符号进行编码。URL编码的方式是把需要编码的字符转化为 %xx 的形式。通常URL编码是基于UTF-8的(当然这和浏览器平台有关)。

2.网页解析异常

解决办法:urllib.request.urlopen(url).read().decode("utf-8", ‘ignore‘),忽略掉异常字符

有用链接:

http://blog.csdn.net/pi9nc/article/details/9734437

http://www.pythonclub.org/python-network-application/observer-spider

时间: 2024-10-11 17:02:39

使用urllib编写python爬虫的相关文章

编写Python爬虫的简易流程描述

python网络爬虫,其实就是模拟人类浏览网页的行为,并将这种行为自动化的工具. 从技术上来说,就是利用python代码发送特定的request请求到Web页面,最后获得response,并将response解析,提取其中的数据并存储起来. 开发一个爬虫程序,首先要确定目标.例如爬取拉勾网的python相关职位信息是我们的目标.根据这个目标,我们可以先使用手工的方式,访问拉勾网,搜索python相关职位,从而对如何从页面获取所需信息有一个直观的理解. 其次,可以使用浏览器自带的开发者工具.抓包工

小白如何入门 Python 爬虫?

本文针对初学者,我会用最简单的案例告诉你如何入门python爬虫! 想要入门Python 爬虫首先需要解决四个问题 熟悉python编程 了解HTML 了解网络爬虫的基本原理 学习使用python爬虫库 一.你应该知道什么是爬虫? 网络爬虫,其实叫作网络数据采集更容易理解. 就是通过编程向网络服务器请求数据(HTML表单),然后解析HTML,提取出自己想要的数据. 归纳为四大步: 根据url获取HTML数据 解析HTML,获取目标信息 存储数据 重复第一步 这会涉及到数据库.网络服务器.HTTP

python爬虫实战——5分钟做个图片自动下载器

python爬虫实战--图片自动下载器 制作爬虫的基本步骤 顺便通过这个小例子,可以掌握一些有关制作爬虫的基本的步骤. 一般来说,制作一个爬虫需要分以下几个步骤: 分析需求(对,需求分析非常重要,不要告诉我你老师没教你) 分析网页源代码,配合F12(没有F12那么乱的网页源代码,你想看死我?) 编写正则表达式或者XPath表达式(就是前面说的那个神器) 正式编写python爬虫代码 效果 运行: 恩,让我输入关键词,让我想想,输入什么好呢?好像有点暴露爱好了. 回车 好像开始下载了!好赞!,我看

【图文详解】python爬虫实战——5分钟做个图片自动下载器

python爬虫实战--图片自动下载器 之前介绍了那么多基本知识[Python爬虫]入门知识,大家也估计手痒了.想要实际做个小东西来看看,毕竟: talk is cheap show me the code! 制作爬虫的基本步骤 顺便通过这个小例子,可以掌握一些有关制作爬虫的基本的步骤. 一般来说,制作一个爬虫需要分以下几个步骤: 1. 分析需求(对,需求分析非常重要,不要告诉我你老师没教你) 2. 分析网页源代码,配合F12(没有F12那么乱的网页源代码,你想看死我?) 3. 编写正则表达式或

如何用Python爬虫实现百度图片自动下载?

Github:https://github.com/nnngu/LearningNotes 制作爬虫的步骤 制作一个爬虫一般分以下几个步骤: 分析需求 分析网页源代码,配合开发者工具 编写正则表达式或者XPath表达式 正式编写 python 爬虫代码 效果预览 运行效果如下: 存放图片的文件夹: 需求分析 我们的爬虫至少要实现两个功能:一是搜索图片,二是自动下载. 搜索图片:最容易想到的是爬百度图片的结果,我们就上百度图片看看: 随便搜索几个关键字,可以看到已经搜索出来很多张图片: 分析网页

Python爬虫——Scrapy框架安装

在编写python爬虫时,我们用requests和Selenium等库便可完成大多数的需求,但当数据量过大或者对爬取速度有一定要求时,使用框架来编写的优势也就得以体现.在框架帮助下,不仅程序架构会清晰许多,而且爬取效率也会增加,所以爬虫框架是编写爬虫的一种不错的选择. 对于python爬虫框架,目前较为热的是Scrapy,其是一个专门爬取web结构性数据的应用框架.Scrapy是一个强大的框架,所依赖的库也较多,比如有lxml,pyOpenSSL和Twisted等,这些库在不同的平台下要求也不一

Python 爬虫工程师必学 App数据抓取实战

第1章 课程介绍介绍课程目标.通过课程能学习到的内容.学会这些技能能做什么,对公司业务有哪些帮助,对个人有哪些帮助.介绍目前app数据抓取有哪些困难,面临的挑战,本实战课程会利用哪些工具来解决这些问题,以及本实战课程的特点 ... 1-1 python爬虫工程师必备技能--App数据抓取实战课程导学第2章 windows下搭建开发环境介绍项目开发需要安装的开发软件,讲解了安卓模拟器对比以及夜神安卓模拟器安装.介绍.简单使用和Genymotion安卓模拟器简单分析 介绍App应用抓包工具对比以及f

Python爬虫与数据图表的实现

要求: 1. 参考教材实例20,编写Python爬虫程序,获取江西省所有高校的大学排名数据记录,并打印输出. 2. 使用numpy和matplotlib等库分析数据,并绘制南昌大学.华东交通大学.江西理工大学三个高校的总分排名.生源质量(新生高考成绩得分).培养结果(毕业生就业率).顶尖成果(高被引论文·篇)等四个指标构成的多指标柱形图. 3. 对江西各高校的顶尖成果(高被引论文数量)进行分析,使用matplotlib绘制各高校顶尖成果数构成的饼状图,并突出江西理工大学所在的饼状块. 实例代码:

第三百四十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—编写spiders爬虫文件循环抓取内容—

第三百四十一节,Python分布式爬虫打造搜索引擎Scrapy精讲-编写spiders爬虫文件循环抓取内容- 编写spiders爬虫文件循环抓取内容 Request()方法,将指定的url地址添加到下载器下载页面,两个必须参数, 参数: url='url' callback=页面处理函数 使用时需要yield Request() parse.urljoin()方法,是urllib库下的方法,是自动url拼接,如果第二个参数的url地址是相对路径会自动与第一个参数拼接 # -*- coding: