关于初学python的一点问题总结(二)
2017-03-16 21:57
295 查看
关于初学python的一点问题总结(二)
目录
关于初学python的一点问题总结二目录
总结
步骤
抓一话来试试
一点小小的问题
总结
今天爬取的页面不是昨天的百度百科,今天尝试对漫画网站的图片进行抓取,在钢之炼金术师 这本漫画的第一话尝试进行抓取。步骤
首先是分析页面的元素块,在页面中,发现所看的漫画的图片元素都是img标签,并且其中都含有
id=mhpic这下子就很好办了。跳转到
img标签里面的
src属性所指向的URL可以发现的确是我们需要的图片。
先尝试抓取一个页面的图片的URL。具体代码如下:
def getimgurl(url): html=urlopen(url) bsObj=BeautifulSoup(html.read(),"html.parser") imgs= bsObj.findAll('img',id="mhpic") for img in imgs: print("getImgURL: "+img['src']) return img['src']
在拿到图片的URL之后,如何下载到本地呢,查了一下其他相关博客,发现在库里面有一个很关键的方法:
urllib.request.urlretrieve(imgurl,'%s.jpg' % i)
简直完美!
这下子图片就下载到本地了,存储路径可以自己写,具体参考
urlretrieve()方法,这里就不做说明。
抓一话来试试
获取和下载图片没问题了之后,就开始找<a>标签,准备开始跳转了。
参考页面发现“下一页”也有一个特殊的
id=mhona,然而整个页面中,除了”下一页”,“上一页”也有这个
id, 这个时候,通过一点小技巧来获取“下一页”,代码如下:
def nextpage(url): html=urlopen(url) bsObj=BeautifulSoup(html.read(),"html.parser") anexts=bsObj.findAll('a',id="mhona") print(url) for anext in anexts: if(anext.get_text()=="下一页"): print("nextPage: "+anext.attrs['href']) return "http://manhua.fzdm.com/17/001/"+anext.attrs['href']
由于这个只是针对第一话的图片的测试,所以并没有返回自动填充的url,只能抓取第一话的图片内容。(其实通过分析也可以看出来,/17就指的是这部漫画,/001是第一话,后面可以修改源码然后对整个网站进行漫画抓取)
一点小小的问题
这是python3的代码这个demo只能针对很小的一块,要爬取一部漫画需要进行改进代码
抓取的最后,页面无法获取到“下一页”时候会报错,加一个try来抛出异常就可以解决。
相关文章推荐
- 关于初学python爬虫的一点问题总结(三)
- 关于C++随机数生成中种子值设置的一点总结,解决随机数序列重复问题
- 关于BaiduMapSDK遇到的问题的一点总结
- 初学dubbo关于zookeeper连接失败和dubbo-admin 404问题总结
- 关于Tomcat(8005,8080,8009)端口占用问题的一点总结配上网上找到的解决方法
- 关于代码运行效率问题的一个总结和一点疑问
- 关于安装mysql-python报错的问题总结
- 关于C++随机数生成中种子值设置的一点总结,解决随机数序列重复问题
- 关于python编码问题总结
- 关于各种编码问题,汉字处理的一点小总结
- python安装以及Anaconda安装中关于路径问题的总结
- MFC 关于绝对路径问题的一点总结
- 关于xcshareddata的一点问题总结
- 关于Linux安装python画图遇到的一些问题总结
- 关于新建android项目时 appcompat_v7报错问题的一点总结
- 关于python的一点问题
- 编译AMSS中关于的Python两个报错问题的总结
- 关于Python2的一点想法以及遇到的问题
- python初学遇到的问题总结
- 本人遇到的关于namespace的一点小问题总结