问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用Python做爬虫?

发布网友 发布时间:2022-04-23 03:30

我来回答

2个回答

热心网友 时间:2022-04-06 01:42

在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材。

我们最常规的做法就是通过鼠标右键,选择另存为。但有些图片鼠标右键的时候并没有另存为选项,还有办法就通过就是通过截图工具截取下来,但这样就降低图片的清晰度。好吧其实你很厉害的,右键查看页面源代码。

我们可以通过python 来实现这样一个简单的爬虫功能,把我们想要的代码爬取到本地。下面就看看如何使用python来实现这样一个功能。

具体步骤

获取整个页面数据首先我们可以先获取要下载图片的整个页面信息。

getjpg.py

#coding=utf-8import urllibdef getHtml(url):

page = urllib.urlopen(url)

html = page.read()    return html

html = getHtml("http://tieba.baidu.com/p/2738151262")print html

Urllib 模块提供了读取web页面数据的接口,我们可以像读取本地文件一样读取www和ftp上的数据。首先,我们定义了一个getHtml()函数:

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

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

2.筛选页面中想要的数据

Python 提供了非常强大的正则表达式,我们需要先要了解一点python 正则表达式的知识才行。

http://www.cnblogs.com/fnng/archive/2013/05/20/3089816.html

假如我们百度贴吧找到了几张漂亮的壁纸,通过到前段查看工具。找到了图片的地址,如:src=”http://imgsrc.baidu.com/forum......jpg”pic_ext=”jpeg”

修改代码如下:

import reimport urllibdef getHtml(url):

page = urllib.urlopen(url)

html = page.read()    return htmldef getImg(html):
reg = r'src="(.+?\.jpg)" pic_ext'
imgre = re.compile(reg)
imglist = re.findall(imgre,html)    return imglist      
html = getHtml("http://tieba.baidu.com/p/2460150866")print getImg(html)

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

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

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

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

3.将页面筛选的数据保存到本地

把筛选的图片地址通过for循环遍历并保存到本地,代码如下:

#coding=utf-8import urllibimport redef getHtml(url):

page = urllib.urlopen(url)

html = page.read()    return htmldef getImg(html):
reg = r'src="(.+?\.jpg)" pic_ext'
imgre = re.compile(reg)
imglist = re.findall(imgre,html)
x = 0    for imgurl in imglist:
urllib.urlretrieve(imgurl,'%s.jpg' % x)
x+=1html = getHtml("http://tieba.baidu.com/p/2460150866")print getImg(html)

这里的核心是用到了urllib.urlretrieve()方法,直接将远程数据下载到本地。

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

程序运行完成,将在目录下看到下载到本地的文件。

热心网友 时间:2022-04-06 03:00

Python作为一种解释型的胶水语言,上手简单、入门容易,标准库齐全,还有丰富的各种开源库,语言本身提供了很多提高开发效率的语法糖,开发效率高,总之“人生苦短,快用Python”(Life is short, you need Python!)。在Web网站开发,科学计算,数据挖掘/分析,人工智能等很多领域广泛使用。
开发环境配置,Python3.5.2,Scrapy1.2.1,使用pip安装scrapy,命令:pip3 install Scrapy,此命令在Mac下会自动安装Scrapy的依赖包,安装过程中如果出现网络超时,多试几次。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 如何查银行的流水账? 住房抵押贷款证券化的法律风险 跪求房地产抵押贷款证券化的含义。 我在集市买了“铁棍山药”,熬汤呈红色,怀疑买了假冒产品,请问什么树根假冒铁棍山药?有毒吗? 假铁棍山药有那些品种 个人住房贷款证券化 住房抵押贷款证券化 是不是一回事? 假铁棍山药有毒吗? 个人流水怎么查 什么是住房抵押贷款证券化,它是怎样让众多投资者来分担贷款风险 常吃假铁棍山药对身体有害吗? 怎样查自己的银行卡流水? 什么是房贷证券化? “住房抵押贷款证券化”是指什么? 香山别墅怎么样?好不好?值不值得买? 香山美墅别墅周边环境怎么样?生活便利吗? 香山美墅别墅怎么样?好不好?值不值得买? 南京将军大道香山别墅在哪 香山别墅的介绍 微信视频号怎么发视频? 微信分屏怎么变大 Python爬虫求教学? 苹果手机怎样删除微信单张图片? python爬虫怎么做? 微信里怎么删除一组照片中的其中一个呢? Python爬虫基本知识:什么是爬虫 怎么删除已发朋友圈里面的一张照片怎样删除微信朋友圈其中一张照片 微信朋友圈,发了一组照片。。如何删除其中1张。??? 怎样删除微信朋友圈中一组图片中的任意一张? 购买或者收藏寿山石,主要把握哪些方面? 微信里发的一组照片可以删除其中一张吗? 七八十年代寿山石山水摆件有价值吗 上传到微信上的照片怎样删除单张? 寿山石价格表? 寿山石值钱吗? 寿山石是什么?如何鉴定寿山石? 翡翠寿山石摆件有收藏价值吗 怎么查看别人微博登录时间? 寿山石把玩品的历史已很悠久,把玩寿山石有什么好处吗? 这个寿山石是清代的吗?大概值多少钱? 寿山石贵吗?