爬取快看漫画#python-爬虫

 

 bcc37f48899f47b2953fe43273b04168.png

 10f9b53886b74c9dbfb1d2800e868b45.png

 思路:如何获取章节链接,生成获取章节列表(生成的代码中的href属性=章节列表)
首先选取一篇漫画,点击任意章节:查看url中的路径为/web/comic/540156/
/web/comic/540156/应为章节链接

在network中查找/web/comic/540156/,只有一个herf属性为/web/comic/540156/链接。但并不是第一章漫画的接口,而是查看第一话的接口。因为只有一个/web/comic/540156/链接,因此起源这一章节的链接可能为动态添加上得到链接。

 11ffaeb0ff204f03882e949c4aebaa82.png

 

在element中查找/web/comic/540156/,有两个herf属性为/web/comic/540156/链接

 

找到章节名,起源外面的span标签与源码中的span标签对应,那span标签外的a标签

<a href="javascript:void(0);" target="">,在herf标签中加入javascript:void(0),意为:点击不发生任何跳转或事件。void,无返回值;0为赋予的形参,javascript:意为javascript的代码。点击调用void的函数,不发生任何事件。但是点击浏览器中的起源,会发生跳转。

当在页面中存在,但在源码中不存在的链接通常使用js代码动态生成。此行代码为当前互联网上常用的反爬手段。如果想要获取信息一定要有解析js代码的能力。因为章节id不可以凭空捏造,若为凭空捏造,那么发送给服务器,服务器不会理解意思,所以一定是有迹可循的,通常来说章节id为一个固定值,方便在数据库中查找数据。因此寻找章节id生成的位置。

a16fbc07cfa54d7c88a31ce3bd7baa4e.png

双击引号部分,为可编辑状态,就可以复制章节id。 

 第一章 的章节id为/web/comic/540156/中的540156,使用全局搜索540156,有两条信息。因为

页面源码中还有一各位置有第一章的链接。

第二章 的章节id为/web/comic/542974/中的542974,使用全局搜索542974,只有一条信息

ctrl+F在请求中查找,很多情况下,(章节id)是通过本地js文件生成。全局搜索将本地的js文件以及网页上获取的js文件都找到。

 

 

 

在Python中爬取快看漫画这类有动态加载内容的网站,可以借助Selenium和BeautifulSoup等工具。由于快看漫画采用了AJAX技术,直接抓取静态HTML可能无法获取完整内容。以下是大致步骤: 1. **安装所需库**: ```bash pip install selenium beautifulsoup4 requests webdriver_manager ``` 2. **初始化浏览器和下载驱动**: ```python from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager driver = webdriver.Chrome(ChromeDriverManager().install()) ``` 3. **打开网页并等待加载**: ```python url = "https://www.kuaikanmanhua.com/" driver.get(url) # 可能需要等待页面完全加载,这里设置一个延迟时间 driver.implicitly_wait(10) # 单位秒 ``` 4. **模拟用户操作**: 使用Selenium控制浏览器滚动、点击按钮等方式触发AJAX加载更多内容。例如,假设你想翻页: ```python last_height = driver.execute_script("return document.body.scrollHeight") while True: driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") time.sleep(2) # 缓慢滚动以允许加载 new_height = driver.execute_script("return document.body.scrollHeight") if new_height == last_height: break # 如果高度不再变化,说明已到达底部,结束循环 last_height = new_height ``` 5. **提取数据**: 循环加载完毕后,通过BeautifulSoup解析页面源码,定位到你要抓取的信息,如图片链接、文字内容等: ```python soup = BeautifulSoup(driver.page_source, 'lxml') manga_images = soup.find_all('img', class_='comic-image') # 查找图像元素 # ...提取其他信息... ``` 6. **保存数据**: 将提取的数据存储到本地文件或其他地方。 7. **关闭浏览器**: ```python driver.quit() ``` 需要注意的是,爬取网站需遵守该网站的robots.txt规则,并尊重版权,不要过于频繁以免对服务器造成压力。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值