# 爬虫练习 **Repository Path**: pocky_gitee/crawler ## Basic Information - **Project Name**: 爬虫练习 - **Description**: 个人工作、生活、学习用到的爬虫会写在这里,目前只上传了一部分。通过爬虫锻炼数据处理能力,增进对反爬技术的了解,遵守爬虫协议。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-02-08 - **Last Updated**: 2022-02-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: Python ## README [TOC] # 仓库代码结构说明 以下爬虫仅供技术学习使用 | | | | ---------------------- | -------------------------------------------------- | | crawler/6mh7_com | 爬取`http://m.6mh7.com`网站漫画图片的代码 | | crawler/cocomanhua_com | 爬取`https://www.cocomanhua.com`网站漫画图片的代码 | | crawler/fkxs_net | 爬取`https://m.fkxs.net`网站的小说 | | crawler/stats_gov_cn | 爬取`http://www.stats.gov.cn`地理信息 | # crawler/6mh7_com中的代码 ## 运行方式 ``` python3 6mh7_com/requests_core.py ``` ## 爬取关键 **爬取结构** 运行代码,会通过目录页获取每一章节页面的地址,进入每一章节页面的地址,可以获得章节下每张图片的下载地址, **解决拿不到章节下每张图片顺序及图片下载路径的问题** 但是每一章节图片的下载地址不是网页初次加载就会有的,而是网页加载完成之后,js修改页面中的标签内容,把图片的地址加进去,所以直接请求页面路径是拿不到图片地址的,选择直接运行这段js,会获得图片的路径,js结果是图片按照先后顺序在一个list里面,遍历这个list并拼接图片下载路径前缀,就可以按顺序的到当前章节中每张图片的下载路径。 **解决访问第一级页面的时候只能拿到部分章节的地址,需要点击“加载更多”才能获得全部** 点击”加载更多”会请求接口,得到的是一个jsonArray,里面是除了已经显示的章节列表之外的全部章节列表,然后页面会通过js改变页面内容。 由于接口返回的内容已经是固定的,所以我们直接把接口返回的结果拿出来就行了,组成每一章节页面的访问路径,粘贴到文件里,读取文件,然后遍历章节访问路径,和通过第一级页面获得页面章节页面访问路径放到一起,形成了完整的章节页面列表。 用来存放的文件名为new.txt ## 爬取流程 1.访问哪里:访问目录页面,访问接口,目的是获得章节页面路径组成的list 2.如何获得下一级:从标签和接口获取 2.衔接:遍历章节页面路径组成的list 章节列表的内容可以存在文件里面,遍历的时候从文件里面读取,这样程序断了,这要打印日志,就可以知道从什么位置断的,以及可以从指定位置开始继续爬取。 3.访问哪里:请求章节页面,目的是获取该章节下每个图片的下载路径 请求章节页面之后,创建该章节对应的文件夹,用于存放该章节下的图片 4.如何获得下一级:每个图片的下载路径在初次请求的页面里面是没有的,是调用js,形成新的标签,这个标签会被添加到页面中 这段写标签的js调用了另一段js函数,这段函数的返回值是一个list(与阅读顺序一致的图片路径list) 要获得这段js函数的代码,需要从页面js里面提取`