python爬取电影代码,python爬取小电影
Python3开发环境下的美女图片爬虫实战准备
相应的python包:
导入urlib。来自lxml导入etree导入导入OS导入datetime开发环境的请求:为了方便测试,
我在这里使用Jupyter笔记本进行开发测试。
当然,也可以使用其他开发环境,比如PyCharm。
Google浏览器:用于数据包捕获分析(其他浏览器也可用,如Firefox)
(这里就不详细说python包的安装了。毕竟这不是入门教程。)
分析网页结构的网站:https://www.mn52.com/MN52图库网(是正规网站,无露点,不属于色情,合法)。
这个网站是图片网站,内容基本都是图片,分类也很多。因为网页的结构是一样的,所以我在这里选择了性感美女的分类进行分析。
性感美女:https://www.mn52.com/xingganmeinv/
因为我要抓取这个类别下的所有图片,首先我要分析这个网址的构成。
爬的时候是1~220页,每页有20组图片(也就是一页有20个缩略图,点进去就是我们需要得到的原图)。
经过分析,思路如下:获取每个页面的URL获取每个页面的20个详情页的URL获取每个详情页下的原图的URL本地下载每组图片的原图。最后用循环爬行。
这是总的思路。让我们开始编写测试代码。
写出代码分析列表的url,形成list_1_220.html组成的https://www.mn52.com/xingganmeinv/list_1_1.html,第一页https://www.mn52.com/xingganmeinv/list_1_2.html第二页https://www.mn52.com/xingganmeinv/.最后一页URL:URL= 3359 www.mn52.com/xingganmeinv/list _ 1 _ number 。html (number=1-200)获取详细信息页面的URL
然后根据Xpath表达式得到。
//div [@ ID=瀑布]/ul/li/div/a/@ href详情页下所有图片网址
使用Xpath表达式获取
//div/ul[@ id= pictureurls ]/Li/div/a/img/@ src
命名规则图片的类型,因为这里的图片有两种格式:jpg和。png,所有下载的图片还是需要按照这两种格式保存,所有的原图都需要按照格式保存。这里,根据IO流传输图像数据。这里是以二进制方式传输,也就是字节码方式,而不是字符。因为每组图片都以相同的格式保存。jpg或者。png,我只是知道一张图片的格式,就是可以得到第一张图片的url后缀。
比如:实际详情页下一张图片的url。
3359 image . mn52 . com/img/allimg/190827/8-1 zrh 10243 . png 3359 image . mn52 . com/img/allimg/190818/8-1ZQR 13348.jpg这里我们需要获取最后四个字符。
由于已经获取了每个详情页下所有原始url的列表[],所以只需要获取列表第一个元素的后四个字符。
# src list下的第一个元素(src是所有原图的url列表)firstSrc=src[0]# Get字符串的后四个字符filetype=firstSrc[-4:]图片的命名。由于我们需要下载的图片很多,可能有几万张甚至几十万张,所以一个好的命名方法非常重要。
这里我会按照图片的原名来给图片命名,也就是需要得到图片的原名。
在分析和测试过程中,我发现图片命名可能有以下两种(可能不止两种)
3359 image . mn52 . com/img/allimg/190827/8-1 zrh 10243 . png 3359 image . mn52 . com/img/allimg/c 160322/145v 4939360050-3110 o . jpg我在这里需要得到的是
8-1 zrh 10243145v 4939360050-3110 o由于之前已经采集了图像类型,所以这里不需要再次采集。(或者可以在这里直接获取名称和类型,直接省略上一步获取图像类型)
我用正则表达式在这里得到它。
# src是原图的URL模式= \ w *?\-\w name=re.search(pattern,Src)。group()print(name)# Src= 3359 image . mn52 . com/img/allimg/c 150926/144323 x 0404 I 0-1261301 . jpg # Result 144323 x 0404 I 0-1261301 # Src= 3359image.mn52.com/img/allimg/190818/8-1ZQR14016.jpg # Result 8-1ZQR 14016这样我们就可以得到图片的名称。不管怎么变,这个正则表达式应该能满足这里的需求。
之前的工作做完之后,我就迫不及待的想进行一次测试。
但是,我遇到了403,404错误…
经过分析,我认为网站安装了防盗链。
解决方案:
模拟浏览器爬取设置header为该网站链接发出的跳转请求最终成功解决。
然后,几个小时下载了21330张性感美女图片。这里只爬了1~120页的图,后面的就没继续爬了。
自动爬行效果
在程序可以改进的地方,程序可以设置一个时间判断:如果每个请求耗时太长,跳过它(防止一个请求耗时太长导致程序假死),设置多线程抓取(其实在这里和打开几个程序抓取是一样的,在这里感觉没有必要……因为网站服务器觉得性能不高,打开太多程序抓取好像没有提高效率?)使用Scrapy框架抓取(提高效率?)完整的代码在这里只提供思路,完整的程序不会贴在这里。主要原因是爬这个网站的人太多,服务器会宕机。毕竟在这里研究这个网站只是心血来潮,没必要连累站长。
最后,这个网站的性感图片都是照片,都是合法的,没有露点,所以不存在所谓的色情。
有兴趣的朋友可以研究一下。给出了完整的分析过程和思路以及反爬行解决方案。
最后希望你能完整的写出来,拍几张写真照片欣赏一下:#搞笑
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。