python爬虫网页的基本流程:

  • 首先选取一部分精心挑选的种子URL。
  • 将这些URL放入待抓取URL队列。
  • 从待抓取URL队列中读取待抓取队列的URL,解析DNS,并且得到主机的IP,并将URL对应的网页下载下来,存储进已下载网页库中。此外,将这些URL放进已抓取URL队列。
  • 分析已抓取URL队列中的URL,从已下载的网页数据中分析出其他URL,并和已抓取的URL进行比较去重,最后将去重过的URL放入待抓取URL队列,从而进入下一个循环。
  • PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

python免费学习资料以及群交流解答点击即可加入1、HTTP请求实现

使用urllib2/urllib实现:

urllib2和urllib是Python中的两个内置模块,要实现HTTP功能,实现方式是以urllib2为主,urllib为辅。

urllib2提供一个基础函数urlopen,通过向指定的URL发出请求来获取数据。最简单的形式是:

import urllib2response=urllib2.urlopen('http://www.zhihu.com')html=response.read()print html

其实可以将上面对http://www.zhihu.com的请求响应分为两步,一步是请求,一步是响应,形式如下:

import urllib2
# 请求
request=urllib2.Request('http://www.zhihu.com')
# 响应
response = urllib2.urlopen(request)
html=response.read()
print html

还有post请求实现:

import urllibimport urllib2url = 'http://www.xxxxxx.com/login'postdata = {'username' : 'qiye',    'password' : 'qiye_pass'}# info 需要被编码为urllib2能理解的格式,这里用到的是urllibdata = urllib.urlencode(postdata)req = urllib2.Request(url, data)response = urllib2.urlopen(req)html = response.read()

将上面的例子改写一下,加上请求头信息,设置一下请求头中的User-Agent域和Referer域信息。2、请求头headers处理

import urllibimport urllib2url = 'http://www.xxxxxx.com/login'user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'referer='http://www.xxxxxx.com/'postdata = {'username' : 'qiye',    'password' : 'qiye_pass'}# 将user_agent,referer写入头信息headers={'User-Agent':user_agent,'Referer':referer}data = urllib.urlencode(postdata)req = urllib2.Request(url, data,headers)response = urllib2.urlopen(req)html = response.read()

urllib2对Cookie的处理也是自动的,使用CookieJar函数进行Cookie的管理。如果需要得到某个Cookie项的值,可以这么做:3、Cookie处理

import urllib2
import cookielib
cookie = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
response = opener.open('http://www.zhihu.com')
for item in cookie:print item.name+':'+item.value

但是有时候会遇到这种情况,我们不想让urllib2自动处理,我们想自己添加Cookie的内容,可以通过设置请求头

import  urllib2
opener = urllib2.build_opener()
opener.addheaders.append( ( 'Cookie', 'email=' + "xxxxxxx@163.com" ) )
req = urllib2.Request( "http://www.zhihu.com/" )
response = opener.open(req)
print response.headers
retdata = response.read()

怎么用python扒网页?新手入门爬虫第一篇!相关推荐

  1. Python+django网页设计入门(14):使用中间件对抗爬虫

    前导课程: Python+django网页设计入门(13):表单.修改密码 Python+django网页设计入门(12):使用Bootstrap和jQuery Python+django网页设计入门 ...

  2. Python+django网页设计入门(9):自定义反爬虫功能

    前导课程: Python+django网页设计入门(8):网站项目文件夹布局 Python+django网页设计入门(7):常用ORM操作 Python+django网页设计入门(6):文件上传与数据 ...

  3. Python+django网页设计入门(20):使用WebSocket创建多人在线聊天室

    2019年3月8日-10日公众号送书活动:中小学生Python课应该学什么 ================ 前导课程: Python+django网页设计入门(19):创建新模型扩展自带用户表的字段 ...

  4. Python+django网页设计入门(19):创建新模型扩展自带用户表的字段

    公众号送书活动火热进行中:新学期福利,送18本Python图书 ================== 前导课程: Python+django网页设计入门(18):自定义模板过滤器 Python+dja ...

  5. Python+django网页设计入门(18):自定义模板过滤器

    前导课程: Python+django网页设计入门(17):模板语法及应用 Python+django网页设计入门(16):优化设计复用分页代码 Python+django网页设计入门(15):公用模 ...

  6. Python+django网页设计入门(17):模板语法及应用

    前导课程: Python+django网页设计入门(16):优化设计复用分页代码 Python+django网页设计入门(15):公用模板设计与使用 Python+django网页设计入门(14):使 ...

  7. Python+django网页设计入门(16):优化设计复用分页代码

    前导课程: Python+django网页设计入门(15):公用模板设计与使用 Python+django网页设计入门(14):使用中间件对抗爬虫 Python+django网页设计入门(13):表单 ...

  8. Python+django网页设计入门(15):公用模板设计与使用

    前导课程: Python+django网页设计入门(14):使用中间件对抗爬虫 Python+django网页设计入门(13):表单.修改密码 Python+django网页设计入门(12):使用Bo ...

  9. Python+django网页设计入门(13):表单、修改密码

    前导课程: Python+django网页设计入门(12):使用Bootstrap和jQuery Python+django网页设计入门(11):在线考试与自动评分 Python+django网页设计 ...

最新文章

  1. Android Service的onStartCommand返回值用法
  2. 导出excel——入门
  3. ios 高德获取定位_解决ios11不支持高德地图API定位功能的方法
  4. springmvc接收日期字段处理方式
  5. Prometheus一条告警是怎么触发的
  6. Redis教程:数据持久化
  7. GroupBox与Panel控件
  8. 黑鲨重装计算机安装无法继续,黑鲨装机大师一键重装系统失败怎么办
  9. 精进1-如何反思 by采铜
  10. close函数 qt_QT5笔记:关闭应用程序和窗口的函数
  11. 无法为表空间 某某XX 中的段创建 INITIAL区
  12. GitHub封了41万俄罗斯开发者账户,开源真的无国界?
  13. Matlab实现平面几何图形的平移、旋转和缩放
  14. 四轴自适应控制算法的一些尝试开源我的山猫飞控和梯度在线辨识自适应等算法
  15. 实验吧CTF-Who are you?
  16. java接口开放平台设计,OpenApi开放平台架构实践
  17. dos2unix和unix2dos
  18. 144显示器只有60_为什么需要144hz显示器 突破60有必要吗
  19. ubuntu完美安装espeak支持中文和粤语 不再报错:Full dictionary is not installed for 'zh'
  20. 数据库审计系统是什么

热门文章

  1. 2020年安康学院计算机专业代码,2020年陕西所有大学代码四位数 陕西院校代码查询2020四位数...
  2. 爬取百度贴吧用户的帖子
  3. Android----------短信消息提醒(Notification)
  4. js遍历数组中的对象并拿到值
  5. 微信答题怎么做_分享公众号答题制作步骤
  6. jenkins 邮件抄送
  7. HTTP常见的14种状态码
  8. 【生活感想】接下来一周的计划
  9. iOS:如何在xcode设置app图标打包项目ipa
  10. 用python写一个简单的爬虫保存在json文件中