第一个python爬虫
来源:互联网 发布:淘宝怎么出售二手 编辑:程序博客网 时间:2024/06/05 17:54
几乎每一个男生的第一个爬虫都是爬妹子的图片的
写代码之前要仔细分析一下网页的源码。
可以看到,图片的URL前面都有 imgclass=”BDE_Image”pic_type=”0”width=”…”height=”…”
,之后就是src =” “,里面的内容就是图片的URL,点击可以查看图片。而我们需要的就是 img class=”BDE_Image”和 src=” ” .
写代码的时候需要导入urllib和BeautifulSoup这两个模块。一开始没学BeautifulSoup的时候,还是有点犯难的。因为urllib和re这两个模块用正则匹配式来抓取,在width和height这两个属性的时候感觉下不了手(可能我不知道,我是新手,拜托各位dalao勿喷)。
#-*-coding:utf-8-*-from bs4 import BeautifulSoupimport urllibdef get_content(url): html = urllib.urlopen(url) content = html.read() html.close() return contentdef callback(a,b,c): down_progress = a*b*100/c if down_progress > 100: down_progress = 100 print "%.2f%%" %down_progress, if down_progress == 100: print '\n'def get_image(info): soup = BeautifulSoup(info,"html5lib") all_img = soup.find_all('img',class_ = "BDE_Image") sum = 0 for img in all_img: global i i = sum print '%s.jpg ' %i urllib.urlretrieve(img['src'], "E:\\Picture\\%s.jpg" %i,callback) sum += 1url = 'https://tieba.baidu.com/p/3697059303'info = get_content(url)get_image(info)
这是源码,加了一个显示下载进度的小功能。
def get_content(url): html = urllib.urlopen(url) content = html.read() html.close() return content
这个函数是读取传入的url,将网页的源代码读取进来
def callback(a,b,c): down_progress = a*b*100/c if down_progress > 100: down_progress = 100 print "%.2f%%" %down_progress, if down_progress == 100: print '\n'
这个函数是实现下载进度的,要传入三个参数。下载时数据被分为几个数据块,a是当前数据块的第几个数,b是每个数据块的大小,c是总数据块的大小。down_progress是下载进度,当大于100%的时候就要使它等于100%。
上面就是下载一个网页时a,b,c的数据。
def get_image(info): soup = BeautifulSoup(info,"html5lib") all_img = soup.find_all('img',class_ = "BDE_Image")sum = 0 for img in all_img: i = sum print '%s.jpg ' %i urllib.urlretrieve(img['src'], "E:\\Picture\\%s.jpg" %i,callback) sum += 1
soup= BeautifulSoup(info,”html5lib”),这句代码就是把一个Beautifuls对象实例化,然后传入info(html的头部信息)和html5lib解释器(这个BeautifulSoup的帮助文档上有)。之前我看教程的时候他没有传入html5lib解释器,后来百度才知道,但是很奇怪教程能够运行,但我却报错了,估计是版本问题吧。
all_img = soup.find_all(‘img’,class_ = “BDE_Image”),这句代码就是调用soup.fing_all方法,查找所有的传入的正则,然后返回
- python第一个爬虫
- 第一个Python爬虫
- 第一个python爬虫
- 第一个python爬虫
- 第一个python爬虫
- Python--第一个爬虫
- python网络爬虫-第一个网络爬虫
- 【Python爬虫】编写第一个爬虫
- 我的第一个Python爬虫
- Python第一个程序小爬虫
- 我的第一个python爬虫脚本
- 第一个python爬虫 抓取新浪新闻
- python的第一个小爬虫requests
- Python第一个爬虫(爬取贴吧图片)
- 整理第一个python爬虫的思路
- 第一个python爬虫实战项目---翻译
- [Python]网络爬虫(12):爬虫框架Scrapy的第一个爬虫示例入门教程
- [Python]网络爬虫(12):爬虫框架Scrapy的第一个爬虫示例入门教程
- 解决Spring引入properties文件报错问题
- CMAKE设置vs工程FOLDER
- 更改make版本
- 013
- ArcGIS对已发布的缓存服务,如何只更新局部范围的切片
- 第一个python爬虫
- 方法设计
- 深度学习在目标跟踪中应用的资料整理
- Hibernate中的save方法
- try catch finally执行流程及return语句的理解
- java对一个数如何保留三位小数
- 第一个Java程序(HelloWorld)
- Spring与Hibernate整合
- monkeyrunner环境搭建