Python爬虫(一)抓取指定的页面
(以下是在windows环境下的操作,python版本为3)
1.urllib库介绍
官方文档上的解释是:
urllib is a package that collects several modules for working with URLs
简单的说就是用来处理url的,它包含以下几个模块:
- urllib.request
- urllib.request,打开并且读取url
- urllib.error,包含了一些urllib.request引起的异常
- urllib.parse,解析url
- urllib.robotparser,解析robots.txt文件
2.request模块
The urllib.request module defines functions and classes which help in opening URLs (mostly HTTP) in a complex world — basic and digest authentication, redirections, cookies and more.
这里,只需用到urllib.request模块,request模块包含了一些函数,用来处理打开的url。
urlopen()
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
该函数主要的参数就是url,可以是一个字符串也可以是一个request对象。
函数返回一个可以作为文本管理器的对象,有如下方法:
- geturl(),返回检索到的url资源,通常用于确定是否允许重定向
- info(),返回页面的元信息,例如headers
- getcode(),返回响应的http状态码
为了清楚这些函数的作用是什么,我们运行如下python代码:
import urllib.request
url = "http://www.baidu.com"
a = urllib.request.urlopen(url)
print('----------type of a----------')
print(type(a))
print('----------geturl()----------')
print(a.geturl())
print('----------info()----------')
print(a.info())
print('----------getcode()----------')
print(a.getcode())
运行结果:

3.抓取百度上关键词的搜索结果
首先我们需要知道百度搜索的url,打开百度随便搜索一个词,就能在地址栏看到url

得到url之后,剩下的就是对url进行爬取了,代码如下:
# coding=utf-8
# Created by dockerchen
import urllib.request
data = {}
data['word'] = '网络安全'
url_values = urllib.parse.urlencode(data)
url = 'http://www.baidu.com/s?wd='
full_url = url + url_values
data = urllib.request.urlopen(full_url).read()
data = data.decode('utf-8')
print(data)
urllib.parse.urlencode()可以将字符串转换为url格式的字符串,这里data进行转换后,我们可以得到wd=%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8的字符串。
要是只想对一个字符串进行urlencode转换,可以使用urllib.parse.quote(),例如:
>>> import urllib.parse
>>> urllib.parse.quote('网络安全')
'%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8'
上面代码的输出结果其实就是爬取的百度页面搜索结果的源代码,之后要做的事,就是对爬取到的东西进行处理,来获取我们想要的数据
参考:
Python爬虫(一)抓取指定的页面的更多相关文章
- Python爬虫实战---抓取图书馆借阅信息
Python爬虫实战---抓取图书馆借阅信息 原创作品,引用请表明出处:Python爬虫实战---抓取图书馆借阅信息 前段时间在图书馆借了很多书,借得多了就容易忘记每本书的应还日期,老是担心自己会违约 ...
- 【转】Python爬虫:抓取新浪新闻数据
案例一 抓取对象: 新浪国内新闻(http://news.sina.com.cn/china/),该列表中的标题名称.时间.链接. 完整代码: from bs4 import BeautifulSou ...
- Python爬虫:抓取新浪新闻数据
案例一 抓取对象: 新浪国内新闻(http://news.sina.com.cn/china/),该列表中的标题名称.时间.链接. 完整代码: from bs4 import BeautifulSou ...
- Python爬虫实现抓取腾讯视频所有电影【实战必学】
2019-06-27 23:51:51 阅读数 407 收藏 更多 分类专栏: python爬虫 前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问 ...
- Python爬虫,抓取淘宝商品评论内容!
作为一个资深吃货,网购各种零食是很频繁的,但是能否在浩瀚的商品库中找到合适的东西,就只能参考评论了!今天给大家分享用python做个抓取淘宝商品评论的小爬虫! 思路 我们就拿"德州扒鸡&qu ...
- python爬虫数据抓取方法汇总
概要:利用python进行web数据抓取方法和实现. 1.python进行网页数据抓取有两种方式:一种是直接依据url链接来拼接使用get方法得到内容,一种是构建post请求改变对应参数来获得web返 ...
- python爬虫批量抓取ip代理
使用爬虫抓取数据时,经常要用到多个ip代理,防止单个ip访问太过频繁被封禁.ip代理可以从这个网站获取:http://www.xicidaili.com/nn/.因此写一个python程序来获取ip代 ...
- Python爬虫:抓取手机APP的数据
摘要 大多数APP里面返回的是json格式数据,或者一堆加密过的数据 .这里以超级课程表APP为例,抓取超级课程表里用户发的话题. 1.抓取APP数据包 表单: 表单中包括了用户名和密码,当然都是加密 ...
- Python爬虫之抓取豆瓣影评数据
脚本功能: 1.访问豆瓣最受欢迎影评页面(http://movie.douban.com/review/best/?start=0),抓取所有影评数据中的标题.作者.影片以及影评信息 2.将抓取的信息 ...
随机推荐
- CF543B Destroying Roads 题解
看到没有题解就贡献一波呗 分析: 这题其实就是想让我们求一个图中两条最短路的最短(好把更多的边删掉). 我们先考虑一条最短路,别问我我怎么会的显然,就是s和t跑个最短路再用n-就行. 然后就是两条喽! ...
- Excel催化剂开源第40波-Excel插入图片做到极致的效果
不知道是开发人员的自我要求不高还是用户的使用宽容度足够大,在众多Excel插入图片的版本中,都没有考虑到许多的可大幅度提升用户体验的细节处理. Excel催化剂虽然开发水平有限,但也在有限的能力下,尽 ...
- 微信小程序全局状态管理 wxscv
微信小程序中,数据状态不同页面中不能跨页面同步更新,也就是缺失类似vuex,mobx,redux全局的数据状态管理功能. 有些人移植了这些库,但是毕竟不是微信小程序生态的东西. Tencent也发布了 ...
- .net持续集成sonarqube篇之sonarqube基本操作(二)
系列目录 Activity界面操作 Activity界面主要是对多次构建管理界面,主要是帮助管理员快速了解项目每次构建与以往构建相比问题是增加了还是减少了等指标.由于目前我们仅进行了一次构建,因此没有 ...
- Cesium 学习(三)各种资源链接
1.前言 前面已经介绍如何获得以及安装部署Cesium,接下来分享下学习资源链接,其中访问最多的是官网以及超图.火星的demo网站. 2.官网地址及介绍 官网:https://cesiumjs.org ...
- Git初步配置 ubuntu服务器 windows客户端 虚拟机
最近自己配置了一下Git,虽然网上相关的内容满天飞(ps:大多都差不多,很多都是直接转载,说的也比较乱),但是我还是碰到了很多问题,这里我就把我配置的步骤分享一下,遇到的问题也说一下,新手之间相互学习 ...
- [ PyQt入门教程 ] Qt Designer工具的布局管理
这节课很重要..界面整洁美观与否就看布局了..这里讲布局方法,至于设计的天赋与最终界面的美感那就看造化了.. 本文主要讲述Qt Designer工具实现界面控件布局管理,就是排列组合控件.包括水平布局 ...
- 绿色版的mysql 下载安装配置方式
解压下载好的压缩包 下载地址 mysql-5.6.26-win64 绿色版 copy 一份my-default.ini改名字为my.ini为mysql的配置文件 打开my.ini 修改配置文件 默认的 ...
- RocketMQ中Producer消息的发送
上篇博客介绍过Producer的启动,这里涉及到相关内容就不再累赘了 [RocketMQ中Producer的启动源码分析] Producer发送消息,首先需要生成Message实例: public c ...
- Chrome浏览器F12开发者工具简单使用
1.如何调出开发者工具 按F12调出 右键检查(或快捷键Ctrl+Shift+i)调出 2.开发者工具初步介绍 chrome开发者工具最常用的四个功能模块:元素(ELements).控制台(Conso ...