热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python3爬虫库,小爬虫

一个基本的url请求对应的python代码真的非常简单。headers(默认空):是一个字典,包含了需要发送的HTTP报头的键值对。这两个参数下面会说到。浏览器


urllib2库的基本用法是捕获网页,即从网络流中读取由URL地址指定的网络资源,并在本地保存。 Python有很多用于抓取网页的库。 首先学习urllib2。


urllib2是Python2.7附带的模块。 (不需要下载,导入即可使用。)。


urllib2官方文档: https://docs.python.org/2/library/urllib2. html


urllib2源代码: https://Hg.python.org/cpython/file/2.7/lib/ur lib2. py


urllib2在python3.x上更改为urllib.request


urlopen首先看看代码:


导入#urllib2_urlopen.py#urllib2库import urllib2#,将请求发送到指定的url, 服务器响应的类文件对象respOnse=urllib2. urlopen (返回' http://www.Baidu.conse的read )方法将读取文件的所有内容,并将字符串html=reserse


power @ power MAC~$ : python urllib2_ urlopen.py实际上,在浏览器中打开百度主页,右键单击并选择“显示源代码”,就像刚才打印的一样也就是说,上面的四行代码爬遍了百度首页的所有代码。


与基本url请求相对应的python代码真的很简单。


Request在第一个示例中,urlopen ) )的参数是url地址。


但是,如果需要执行更复杂的操作(如添加HTTP标头),则必须将请求实例创建为urlopen ()的参数。 需要访问的url地址将用作请求实例的参数。


编辑urllib2_request.py


# urllib2_ Request.pyimporturllib2# URL作为request ()方法的参数, request对象request=urllib2. request (生成' http://www.Baidu .并返回;发送到服务器以接收响应的respOnse=urllib2. urlopen (请求除了url参数外,新的request实例还可以设置其他两个参数


DTA (默认空)是与url发送相关的数据(例如要开机自检的数据),同时HTTP请求从“获取”方式更改为“开机自检”方式。


headers (默认空)是一个词典,其中包含要发送的HTTP标头的键-值对。


以下说明这两个参数。


虽然是用户代理,但是这样用urllib2直接向网站发送请求确实有点唐突。 例如,家里有门,以行人身份直接闯入显然是不礼貌的。 此外,一些站点不喜欢程序访问(非人工访问),因此可能会拒绝访问请求。


但是,如果我们以合法身份委托别人的网站,显然人很欢迎,所以我们应该给我们的代码加身份。 就是所谓的用户代理头。


浏览器是指互联网世界公认的身份。 如果我们的爬虫程序想成为真正的用户,我们的第一步就是伪装成公认的浏览器。 在不同的浏览器中发送请求时,有不同的用户代理标头。 urllib2的默认用户代理标头是Python-urlib/x.y。 (x和y是python的主版本和次版本的编号。 例如,python-urllib/2.7 (# urllib2_ user agent.pyimporturllib2URL=' http://www.itcast.cn ' # ie 9.0中的用户代理可以是Windows NT 6.1; 三角/5.0; ' } # url与headers一起发送到IE9.0浏览器的user-agent request=urllib2. request (headers=ua _ header (#将此请求发送到服务器)


要添加/修改特定的header,请调用Request.add_header ()。 要查看现有的header,请调用Request.get_header )。


特定header # urllib2_ headers.pyimporturllib2URL=' http://www.itcast.cn ' # ie 9.0的user-agentheader={'user-ager} MSIE 9.0; Windows NT 6.1; Trident/5.0;' }request=urllib2.request(URL, headers=header ) ) Request.add_header )来添加/修改特定的header request.add _ header (' keep-alive ' ) 也可以显示request.get _ header (header _ name=' connection ' ) header在print response.code #中, 可以查看随机用户代理#在响应状态代码html=response.read () print html中的添加/更改urllib2_ add _ headers.pyimporturlib2iii CrOS i686 2268.111.0 ) .',' Mozilla/5.0 (MAC OS; u; PPC Mac OS X .' Mozilla/5.0(Macintosh; Intel MAC OS . ' ] user _ agent=random.choice (ua _ list ) request=urllib2. request (URL ) ), 也可以通过调用Request.add_header使用特定的header request.add _ header (user-agent ), 将user_agent ) #的第一个字符更改为大写,后面的所有小写request.get_header(user-agent ) ) respOnse=urllib2.urlopen ) req ) html=


推荐阅读
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
  • 本文由编程笔记小编整理,主要介绍了使用Junit和黄瓜进行自动化测试中步骤缺失的问题。文章首先介绍了使用cucumber和Junit创建Runner类的代码,然后详细说明了黄瓜功能中的步骤和Steps类的实现。本文对于需要使用Junit和黄瓜进行自动化测试的开发者具有一定的参考价值。摘要长度:187字。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • 在编写业务代码时,常常会遇到复杂的业务逻辑导致代码冗长混乱的情况。为了解决这个问题,可以利用中间件模式来简化代码逻辑。中间件模式可以帮助我们更好地设计架构和代码,提高代码质量。本文介绍了中间件模式的基本概念和用法。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
author-avatar
哀公家园_678
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有