今天是认真看论文的霏霏,奖励自己摸一会儿鱼。其实有时候闲下来看一点和实验室无关的东西还挺放松的,就和打球、玩游戏没有什么区别。之前写的东西吧,虽然大部分没什么技术含量,也没什么实际用处,但是我感觉还挺好玩的。其实Python本来就挺好玩的,因为比较简单,对新手也比较友好。至少不会像C一样,让我想起大一那会儿被黑压压的控制台支配的恐惧。很多时候,稍微写那么几行代码,就能完成一个小任务,及时的反馈也能让人有一些成就感。
原理
打开青年大学习的首页,网址:
http://news.cyol测试数据/node_67071.htm
进入最近一期视频,打开开发者工具,可以看到请求列表中包含了我们想要的结束图:
这期视频的URL为:
http://h5.cyol测试数据/special/daxuexi/lfvuyhztrd/index.html
结束图的URL为:
http://h5.cyol测试数据/special/daxuexi/lfvuyhztrd/images/end.jpg
那么现在思路就很清晰了,先获取到最新一期青年大学习的URL,然后把URT末尾的 index.html 替换为 image/end.jpg 即可。因为比较简单,所以多写几种实现方法。
获取HTML
方法一:用Python标准库urllib
from?urllib.request?import?urlopen html?=?urlopen('http://news.cyol测试数据/node_67071.htm') print(html.read().decode('utf-8'))
方法二:用Reuqests
import?requests r?=?requests.get('http://news.cyol测试数据/node_67071.htm') print(r.text)
解析HTML
方法一:用BeautifulSoup
import?requests from?bs4?import?BeautifulSoup r?=?requests.get('http://news.cyol测试数据/node_67071.htm') bs?=?BeautifulSoup(r.text,?'html.parser') image_url?=?bs.find('a',?class_="transition")['href'].rsplit('/',?1)[0]?+?'/images/end.jpg'
方法二:用lxml
import?requests from?lxml?import?etree r?=?requests.get('http://news.cyol测试数据/node_67071.htm') html?=?etree.HTML(r.text) image_url?=?html.xpath('/html/body/div[4]/dl/dd/ul/li[1]/a/@href')[0].rsplit('/',?1)[0]?+?'/images/end.jpg'
保存图片
用Python标准库urllib
from?urllib.request?import?urlretrieve urlretrieve(image_url,?'学习,学个屁.jpg')
用Requests
image?=?requests.get(image_url).content with?open('学习,学个屁.jpg','wb')?as?f: ??f.write(image)
不保存,直接显示
用Requests和PIL
from?PIL?import?Image from?io?import?BytesIO r?=?requests.get(image_url) image?=?Image.open(BytesIO(r.content)) image.show()
用skimage
from?skimage?import?io image?=?io.imread(image_url) io.imshow(image) io.show()
一共也就不到十行代码,能干的事情还挺多的。
import?requests from?bs4?import?BeautifulSoup from?urllib.request?import?urlretrieve r?=?requests.get('http://news.cyol测试数据/node_67071.htm') bs?=?BeautifulSoup(r.text,?'html.parser') image_url?=?bs.find('a',?class_="transition")['href'].rsplit('/',?1)[0]?+?'/images/end.jpg' urlretrieve(image_url,?'学习,学个屁.jpg')
查看更多关于【爬虫实战】获取最新一期青年大学习的结束图的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did164965