Python爬虫之知乎图片抓取
2017-07-13 09:35
459 查看
最近觉得python爬虫挺好玩的,就网上找了找教程自学了几天,真的还挺有意思的,推荐一个中国大学mooc平台的一个关于Python爬虫的课程,老师讲的很好,非常适合入门,这里是链接。
想起曾经在知乎的一个专栏里面看到过一个非常好玩的东西,之前看的时候还不会爬虫,只是将文章收藏了下来,代码在这里。现在回过头来去看,发现还挺简单的。专栏文章是用lxml来解析html文件的,我查了下,发现xpath真的非常好用(哈哈,其实我还不怎么会,待找找教程学了再来吧),不过既然学了BeautifulSoup,我就用BeautifulSoup来简单实现一下吧。
废话不多说,直接上代码吧。(这里只是爬取一个问题下排名第一的答案里的图片)
哈哈,上截图:
想起曾经在知乎的一个专栏里面看到过一个非常好玩的东西,之前看的时候还不会爬虫,只是将文章收藏了下来,代码在这里。现在回过头来去看,发现还挺简单的。专栏文章是用lxml来解析html文件的,我查了下,发现xpath真的非常好用(哈哈,其实我还不怎么会,待找找教程学了再来吧),不过既然学了BeautifulSoup,我就用BeautifulSoup来简单实现一下吧。
废话不多说,直接上代码吧。(这里只是爬取一个问题下排名第一的答案里的图片)
import requests from bs4 import BeautifulSoup import os import time cookie = ''#那篇专栏文章里有教怎么用cookie headers = {'User-Agent': 'Mozilla/5.0',#模拟浏览器向网页发出请求 'Cookie': cookie} def getHtmlText(url): try: response = requests.get(url,headers=headers) response.raise_for_status() response.encoding = 'utf-8' return response.text except: exit('模拟cookie登陆失败') def savePictures(): html_text = getHtmlText('https://www.zhihu.com/question/40063489') #soup = BeautifulSoup(open('zhihu.html','r',encoding='utf-8'),'html.parser') #如果不会cookie登陆,可以自己手动保存网页源码为html文件 soup = BeautifulSoup(html_text,'html.parser') #question和author,自己打开网页源码,找到他们,然后看所在标签 question = soup.h1.text.strip() author = str(soup.find_all(name='a',attrs='UserLink-link')[1].text) #info就是author回答question的答案的所有信息 info = soup.find_all(name='div',attrs="RichContent-inner")[0] #一个question下会显示两位排名靠前的回答,这里选择第一位 x = info.find_all(name='noscript') #这就是所有图片链接所在的标签列表 links = [] for i in x: link = i.img.attrs['src'] links.append(link) try: filename = question + ' - ' + author #print(filename) if not os.path.exists(filename): os.mkdir(filename) for i in range(len(links)): img_source = requests.get(links[i]).content img_path = filename + '/' + str(i)+ '.' + links[i].split('.')[-1] with open(img_path,'wb') as f: f.write(img_source) print(links[i],'保存成功') except: print('error') start = time.time() savePictures() end = time.time() print('总耗时: ',end-start,'秒')
哈哈,上截图:
相关文章推荐
- 【Python爬虫基础】抓取知乎页面所有图片
- Python爬虫 + 人脸检测 + 颜值检测 = 知乎高颜值图片抓取
- 用python爬虫抓取知乎图片
- Python爬虫抓取网页图片
- 简单的python爬虫抓取图片实例
- python实现简单爬虫抓取图片
- 编写Python爬虫抓取暴走漫画上gif图片的实例分享
- Python3 定向爬虫之“抓取糗事百科图片”
- python抓取网页图片 python爬虫实例
- [python和大数据-1]利用爬虫登录知乎进行BFS搜索抓取用户信息本地mysql分析【PART1】
- 一个抓取知乎页面图片的简单爬虫
- python Requests 知乎问题图片爬虫
- 编写Python爬虫抓取暴走漫画上gif图片的实例分享
- python 实现网站图片抓取小爬虫
- python爬虫之抓取网页中的图片到本地
- [python]第一炮:抓取图片的小爬虫
- 用python实现的一个抓取图片的爬虫
- Python爬虫之抓取网络图片
- Python入门-编写抓取网站图片的爬虫-正则表达式
- Python爬虫学习笔记一:简单网页图片抓取