python爬虫第一天
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爬虫第一天的更多相关文章
- Python爬虫第一步
这只是记录一下自己学习爬虫的过程,可能少了些章法.我使用过的是Python3.x版本,IDE为Pycharm. 这里贴出代码集合,这一份代码也是以防自己以后忘记了什么,方便查阅. import req ...
- Python爬虫第一个成功版
爬取http://www.mzitu.com/all里面的图片 import urllib.request import re import os url = 'http://www.mzitu.co ...
- 猿人学python爬虫第一题
打开网站.F12,开启devtools.发现有段代码阻止了我们调试 好的.接下来有几种解决方法 1- 绕过阻止调试方法 方法1(推荐) 鼠标放在debugger该行,左边数字行号那一列.右键选择不在永 ...
- Python爬虫第一集
import urllib2 response = urllib2.urlopen("http://www.baidu.com") print response.read() 简单 ...
- Python爬虫入门教程 12-100 半次元COS图爬取
半次元COS图爬取-写在前面 今天在浏览网站的时候,忽然一个莫名的链接指引着我跳转到了半次元网站 https://bcy.net/ 打开之后,发现也没有什么有意思的内容,职业的敏感让我瞬间联想到了 c ...
- Python爬虫入门教程: 半次元COS图爬取
半次元COS图爬取-写在前面 今天在浏览网站的时候,忽然一个莫名的链接指引着我跳转到了半次元网站 https://bcy.net/ 打开之后,发现也没有什么有意思的内容,职业的敏感让我瞬间联想到了 c ...
- 孤荷凌寒自学python第八十天开始写Python的第一个爬虫10
孤荷凌寒自学python第八十天开始写Python的第一个爬虫10 (完整学习过程屏幕记录视频地址在文末) 原计划今天应当可以解决读取所有页的目录并转而取出所有新闻的功能,不过由于学习时间不够,只是进 ...
- 孤荷凌寒自学python第七十九天开始写Python的第一个爬虫9并使用pydocx模块将结果写入word文档
孤荷凌寒自学python第七十九天开始写Python的第一个爬虫9 (完整学习过程屏幕记录视频地址在文末) 今天在上一天的基础上继续完成对我的第一个代码程序的书写. 到今天终于完成了对docx模块针对 ...
- 孤荷凌寒自学python第七十八天开始写Python的第一个爬虫8
孤荷凌寒自学python第七十八天开始写Python的第一个爬虫8 (完整学习过程屏幕记录视频地址在文末) 今天在上一天的基础上继续完成对我的第一个代码程序的书写. 到今天止基本完成了对docx模块针 ...
随机推荐
- 在linux下使用百度ueditor编辑器上传图片
百度ueditor编辑器虽然强大,但是也有不足的地方.如果对ueditor流程不是很熟悉可以说走的弯路比较多,费力不讨好.下面呢,就是要解决ueditor遇到的问题. 用ueditor上传图片遇到的问 ...
- Docx组件读写Word文档介绍
Docx介绍 官方原文:DocX is a .NET library that allows developers to manipulate Word 2007/2010/2013 files, i ...
- Java EE基础之JSP
从本篇文章开始,我会用文章记录下我在学习Java EE过程中的一些笔记和感悟,至于还没有更新结束的Java SE还是会继续写的,只是我觉得一直写语法很枯燥,自己也没法继续下去,所以带着点web学习,会 ...
- 结队编程study
##今天针对study进行结队编程,我和搭档张佳慧刚开始误认为SystemBarTintManager,baseActivity是personalActivity跳转的下一个界面,因为这个代码个人中心 ...
- 从零开始学习springboot之springboot搭建
博主刚开始实习不久,还是小白一枚,被公司的各种新奇技术搞得眼花缭乱了好久,主要是用springboot和dubbo构建起来的项目.看完之后才知道springboot真的是java开发者的福音啊 话不多 ...
- ajax大洋第一步
Ajax工具包 Ajax并不是一项新技术,它实际上是几种技术,每种技术各尽其职,以一种全新的方式聚合在一起. 服务器端语言:服务器需要具备向浏览器发送特定信息的能力.Ajax与服务器端语言无关. XM ...
- 通过UDP广播实现Android局域网Peer Discovering
本文是对个人笔记中内容的整理,部分代码及图片来自互联网,由于不好找到原始出处,所以未加注明. 如有痛感,联系删除. 本文将介绍以下知识点: TCP与UDP的区别: 单播.多播.广播: Java中实现U ...
- HibernateTemplate的使用
HibernateTemplate 提供了非常多的常用方法来完成基本的操作,比如增加.删除.修改及查询等操作,Spring 2.0 更增加对命名 SQL 查询的支持,也增加对分页的支持.大部分情况下, ...
- CI框架浅析(二)
该文延续上篇文章: CI框架浅析(一) 在CI框架的核心库中,CodeIgniter.php负责加载所有需要的类库,第一个加载的是公共库 core/Common.php Common.php 负责加载 ...
- 原生态JS实现banner图的常用所有功能
虽然,用jQuery实现banner图的各种效果十分简单快捷,但是我今天用css+js代码实现了几个banner图的常用功能,效果还不错. 此次,主要想实现以下功能: 1. banner图循环不间断切 ...