python爬虫第一天

太久没折腾爬虫 又要重头开始了....感谢虫师大牛的文章.

接下来的是我的随笔

0x01 获取整个页面

我要爬的是百度贴吧的图,当然也是跟着虫师大牛的思路.

代码如下:

 #coding=utf-8
 import urllib
 #urllib 模块读取web页面相当于接口

 def gethtml(url):    #定义一个gethtml函数得到页面
     page = urllib.urlopen(url)
     html = page.read()
     return html
 html = gethtml("http://tieba.baidu.com/p/4674704187")

 print html

按照我的标注大概思路是这样,接着是虫师大牛的讲解:Urllib 模块提供了读取web页面数据的接口,我们可以像读取本地文件一样读取www和ftp上的数据。首先,我们定义了一个getHtml()函数:

  urllib.urlopen()方法用于打开一个URL地址。

  read()方法用于读取URL上的数据,向getHtml()函数传递一个网址,并把整个页面下载下来。执行程序就会把整个网页打印输出。

0x02 抓取数据

这里是我们想要的主题,代码如下:

 #coding=utf-8
 import urllib
 import re
 #urllib 模块读取web页面相当于接口,第二次正则表达试提图片

 def gethtml(url):    #定义一个gethtml函数得到页面
     page = urllib.urlopen(url)
     html = page.read()
     return html
 #在原来的基础上修改添加正则表达式的语句 src="http://imgsrc.baidu.com/forum/w%3D580/sign=ab2da672e124b899de3c79305e061d59/82777fec54e736d1ac3b007a93504fc2d5626915.jpg"
 def getimg(html):
     reg = r'scr="(.+?\.jpg)"pic_ext'
     imgre = re.compile (reg)
     imglist = re.findall (imgre,html) #牵扯到异步知识但还不算是,这里按顺序取得图片,我的理解.233
     return imglist

 html = gethtml("http://tieba.baidu.com/p/4674704187")
 print getimg(html)

  我们又创建了getImg()函数,用于在获取的整个页面中筛选需要的图片连接。re模块主要包含了正则表达式:

  re.compile() 可以把正则表达式编译成一个正则表达式对象.

  re.findall() 方法读取html 中包含 imgre(正则表达式)的数据。

   运行脚本将得到整个页面中包含图片的URL地址。

0x03 通过筛选图片有序保存

 #coding=utf-8
 import urllib
 import re
 #urllib 模块读取web页面相当于接口,第二次正则表达试提图片

 def gethtml(url):    #定义一个gethtml函数得到页面
     page = urllib.urlopen(url)
     html = page.read()
     return html
 #在原来的基础上修改添加正则表达式的语句 src="http://imgsrc.baidu.com/forum/w%3D580/sign=ab2da672e124b899de3c79305e061d59/82777fec54e736d1ac3b007a93504fc2d5626915.jpg"
 def getimg(html):
     reg = r'scr="(.+?\.jpg)"pic_ext'
     imgre = re.compile (reg)
     imglist = re.findall (imgre,html)  #牵扯到异步知识但还不算是,这里按顺序取得图片
     x = 0                              #return imglist 在原来的基础上添加for循环并保存到本地
     for imgurl in imglist:
         urllib.urlretrieve(imgurl,'%s.jpg' % x)
         x+=1

 html = gethtml("http://tieba.baidu.com/p/4674704187")
 print getimg(html)

urllib.urlretrieve()保存到本地,通过一个for循环对获取的图片连接进行遍历,为了使图片的文件名看上去更规范,对其进行重命名,命名规则通过x变量加1。保存的位置默认为程序的存放目录。

python爬虫第一天的更多相关文章

  1. Python爬虫第一步

    这只是记录一下自己学习爬虫的过程,可能少了些章法.我使用过的是Python3.x版本,IDE为Pycharm. 这里贴出代码集合,这一份代码也是以防自己以后忘记了什么,方便查阅. import req ...

  2. Python爬虫第一个成功版

    爬取http://www.mzitu.com/all里面的图片 import urllib.request import re import os url = 'http://www.mzitu.co ...

  3. 猿人学python爬虫第一题

    打开网站.F12,开启devtools.发现有段代码阻止了我们调试 好的.接下来有几种解决方法 1- 绕过阻止调试方法 方法1(推荐) 鼠标放在debugger该行,左边数字行号那一列.右键选择不在永 ...

  4. Python爬虫第一集

    import urllib2 response = urllib2.urlopen("http://www.baidu.com") print response.read() 简单 ...

  5. Python爬虫入门教程 12-100 半次元COS图爬取

    半次元COS图爬取-写在前面 今天在浏览网站的时候,忽然一个莫名的链接指引着我跳转到了半次元网站 https://bcy.net/ 打开之后,发现也没有什么有意思的内容,职业的敏感让我瞬间联想到了 c ...

  6. Python爬虫入门教程: 半次元COS图爬取

    半次元COS图爬取-写在前面 今天在浏览网站的时候,忽然一个莫名的链接指引着我跳转到了半次元网站 https://bcy.net/ 打开之后,发现也没有什么有意思的内容,职业的敏感让我瞬间联想到了 c ...

  7. 孤荷凌寒自学python第八十天开始写Python的第一个爬虫10

    孤荷凌寒自学python第八十天开始写Python的第一个爬虫10 (完整学习过程屏幕记录视频地址在文末) 原计划今天应当可以解决读取所有页的目录并转而取出所有新闻的功能,不过由于学习时间不够,只是进 ...

  8. 孤荷凌寒自学python第七十九天开始写Python的第一个爬虫9并使用pydocx模块将结果写入word文档

    孤荷凌寒自学python第七十九天开始写Python的第一个爬虫9 (完整学习过程屏幕记录视频地址在文末) 今天在上一天的基础上继续完成对我的第一个代码程序的书写. 到今天终于完成了对docx模块针对 ...

  9. 孤荷凌寒自学python第七十八天开始写Python的第一个爬虫8

    孤荷凌寒自学python第七十八天开始写Python的第一个爬虫8 (完整学习过程屏幕记录视频地址在文末) 今天在上一天的基础上继续完成对我的第一个代码程序的书写. 到今天止基本完成了对docx模块针 ...

随机推荐

  1. 【react-router】从Link组件和a标签的区别说起,react-router如何实现导航并优化DOM性能?

    (注:参考自官方英文文档V3.X版本) react-router是伴随着react框架出现的路由系统,它也是公认的一种优秀的路由解决方案.在使用react-router时候,我们常常会使用其自带的路径 ...

  2. webpack独立打包与缓存处理

    关于 微信公众号:前端呼啦圈(Love-FED) 我的博客:劳卜的博客 知乎专栏:前端呼啦圈 前言 先前写了一篇webpack入门的文章<webpack入门必知必会>,简单介绍了webpa ...

  3. ASP.NET Core MVC 源码学习:MVC 启动流程详解

    前言 在 上一篇 文章中,我们学习了 ASP.NET Core MVC 的路由模块,那么在本篇文章中,主要是对 ASP.NET Core MVC 启动流程的一个学习. ASP.NET Core 是新一 ...

  4. Mac端SVN工具CornerStone详解

    俗话说:"工欲善其事必先利其器": 对于我们程序员来说,不管你是大神,还是小鱼小虾,进入公司之后,都用过源码管理工具,不然你就不是一个合格的程序员,现在各个公司用于源码管理工具通常 ...

  5. sass或scss入门

    1.sass环境搭载: 安装ruby 安装sass 安装compass 配置webstorm 如果只是使用sass的话,就配置sass命名监听就好了 如图: sass目录如下: 如果配置了compas ...

  6. javascript与jQuery选项卡效果

    HTML结构: <!doctype html><html><head><meta charset="utf-8"><title ...

  7. 【转】AS3画板工具类,可直接套用

    原文链接:http://bbs.9ria.com/thread-212711-1-16.html 今天项目需求做一个画板,要有橡皮擦.自己懒不想写,在网上搜了半天都是习作,没有拿来就能用的又不爱看.只 ...

  8. android开发之-数据存储Map、HashMap、Hashtable、concurenthashmap区别

    选择一个map进行软件基础数据初始化操作,要求第一次初始化后,不修改数据,可能会出现静态类被回收,然后在进行初始化操作? 1.Map :接口 /** * A {@code Map} is a data ...

  9. WPF自定义控件(2)——图表设计[1]

    0.小叙闲言 除了仪表盘控件比较常用外,还有图表也经常使用,同样网上也有非常强大的图表控件,有收费的(DEVexpress),也有免费的.但我们平时在使用时,只想简单地绘一个图,控件库里面的许多功能我 ...

  10. huffman压缩解压文件【代码】

    距离上次写完哈夫曼编码已经过去一周了,这一周都在写huffman压缩解压,哎,在很多小错误上浪费了很多时间调bug.其实这个程序的最关键部分不是我自己想的,而是借鉴了某位园友的代码,但是,无论如何,自 ...