分析
浏览网站的时候,网址格式都为https://lieqishi.com/index.php/fuli/show/id/,文章编号为1~3363(手工试出来的),后期网站增加这个值还会变大。
很多图片需要登录后才能查看,不登录只能看到一张图片。
登录后有些文章有翻页。
有些文章需要消费金币才能查看,这个我就没办法了。(但是猜测有bug,消费一次后,再次查看还需要消费)
使用Fiddler进一步分析
登录的时候是这个url,https://lieqishi.com/index.php/api/ulog/login?username=UserName&userpass=123456,使用GET方法,没有POST数据。
登录之后需要查看的图片是这个网址返回html的,https://lieqishi.com/index.php/fuli/show/pay/,返回的是url加密的数据,需要解密。
可以使用Cookies的方式保持登陆。
利用Chrome的F12查看网页代码,show页面中用#content 下的img标签来定位位置,取得图片的实际href。
pay页面中解密之后,直接用img标签来定位位置,取得图片的实际href。
对于翻页的,取得当前页面下一页按钮(class=‘layui-laypage-next’)中的href是否与本页一致,不一致则表示有下一页。第二页的链接为https://lieqishi.com/index.php/fuli/show/pay//2
实现功能点
实现模拟登录,获取相应的cookies。用于后面的请求。
循环获取所有文章对应的show和pay页面中的img标签的href,做成数组。
用文章编号创建文件夹,把此文章下面的show和pay的img全部下载下来。
随机获取user-agent,模拟不同浏览器浏览。
文件存在则提示下载过,不再下载。
遇到的问题
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed
此问题是由于Fiddler开着,会转发,关掉即可。
Max retries exceeded with url
对于打开url获取img增加三次重试功能。
对于下载图片的时候,出现报错等待几秒。
设置requests.get的timeout。
通过浏览器看到的url可能不是你实际要采集的url,一定要用Fiddler分析下。
To-Do-List
此代码仅供参考,有违反什么的话,请告知。
文章著作权归作者所有,如有侵权,请联系小编删除
领取专属 10元无门槛券
私享最新 技术干货