python3爬虫基础学习
来源:互联网 发布:手机天猫 手机淘宝 编辑:程序博客网 时间:2024/05/01 00:57
在知乎上看到别人写的python爬虫,链接:同时用R语言和Python爬取知乎美图,学习一下,源代码执行不成功,稍微修改了一下,很简单,代码如下:
import requestsfrom bs4 import BeautifulSoupimport osimport reimport urlliburl="https://www.zhihu.com/question/35931586/answer/206258333"header={'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36'}page=requests.get(url,headers=header)soup=BeautifulSoup(page.text,'lxml')link_list=soup.find_all("img",class_="origin_image zh-lightbox-thumb lazy")os.makedirs("./Image/zhihu/")os.chdir('./Image/zhihu/')for link in link_list: mylink=link.get('data-original') name=re.findall(r"v2-.*?\.jpg",mylink)[0] urllib.request.urlretrieve(mylink,name)
学习笔记:urlretrieve(url,filename=null,reportbook=null,data=null)方法,将远程数据下载到本地,参数说明:
url:外部或者本地url
filename:指定了保存到本地的路径(如果未指定该参数,urllib会生成一个临时文件来保存数据);
reporthook:是一个回调函数,当连接上服务器、以及相应的数据块传输完毕的时候会触发该回调。我们可以利用这个回调函数来显示当前的下载进度。
data:指post到服务器的数据。该方法返回一个包含两个元素的元组(filename, headers),filename表示保存到本地的路径,header表示服务器的响应头。
改成如下代码能看到每张图片的存储进度:
import requestsfrom bs4 import BeautifulSoupimport osimport reimport urllibdef callbackfunc(blocknum,blocksize,totalsize): ''' @blocknum: 已经下载的数据块 @blocksize: 数据块的大小 @totalsize: 远程文件的数据块 ''' percent=100.0*blocknum*blocksize/totalsize if percent>100: percent=100 print("%.2f%%" %percent)url="https://www.zhihu.com/question/35931586/answer/206258333"header={'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36'}page=requests.get(url,headers=header)soup=BeautifulSoup(page.text,'lxml')link_list=soup.find_all("img",class_="origin_image zh-lightbox-thumb lazy")os.makedirs("./Image/zhihu/")os.chdir('./Image/zhihu/')for link in link_list: mylink=link.get('data-original') name=re.findall(r"v2-.*?\.jpg",mylink)[0] urllib.request.urlretrieve(mylink,name,callbackfunc)
另外推荐学习资料:
Beautiful Soup 4.2.0 文档
用Python3开发爬虫
阅读全文
0 0
- python3爬虫基础学习
- python3爬虫基础
- Python3 爬虫基础
- python3 [入门基础实战] 爬虫入门之xpath的学习
- python3爬虫学习
- Python3简单爬虫学习
- Python3爬虫入门学习
- python3爬虫学习
- Python3 urllib库爬虫 基础
- python3.x之爬虫学习
- python3 爬虫学习日记【一】
- python3爬虫学习(一)
- Python3爬虫视频学习教程
- python3 [入门基础实战] 爬虫入门之智联招聘的学习(一)
- python3 [入门基础实战] 爬虫入门之智联招聘的学习(一)
- Python3基础 学习笔记
- Python3 基础学习
- Python3 基础学习笔记
- 数组右移
- JAVA里的空白\t\n\r分别代表什么?
- 对象的比较comparable与comparator
- 环境变量配置
- android 长按监听
- python3爬虫基础学习
- Java 配置环境变量
- 三招两式,轻松搞定Excel文本算式
- 汇付科技新员工IT环境须知
- 【上海校区】海哥解惑-常见中文乱码问题解决方式
- java数据结构与算法-有序链表
- 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。
- 机器学习笔记:线性回归
- UE4中常用的几个事件类