喜欢看漫画的小伙伴就不要错过啦,python批量爬取动漫免费看
生活随笔
收集整理的這篇文章主要介紹了
喜欢看漫画的小伙伴就不要错过啦,python批量爬取动漫免费看
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
實現效果
運行環境
-
IDE VS2019
-
Python3.7
-
Chrome、ChromeDriver
-
Chrome和ChromeDriver的版本需要相互對應
先上代碼,代碼非常簡短,包含空行也才50行,多虧了python強大的庫
import os import time import requests from selenium import webdriver from lxml import etree ''' python學習交流群:1136201545更多學習資料可以加群獲取 ''' def getChapterUrl(url):headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36"}part_url = "http://ac.qq.com"res = requests.get(url, headers=headers)html=res.content.decode()el = etree.HTML(html)li_list = el.xpath('//*[@id="chapter"]/div[2]/ol[1]/li')for li in li_list:for p in li.xpath("./p"):for span in p.xpath("./span[@class='works-chapter-item']"):item = {}list_title = span.xpath("./a/@title")[0].replace(' ', '').split(':')if list_title[1].startswith(('第', '序')):getChapterFile(part_url + span.xpath("./a/@href")[0], list_title[0],list_title[1])def getChapterFile(url,path1,path2):#path = os.path.join(path)#漫畫名稱目錄path=os.path.join(path1)if not os.path.exists(path):os.mkdir(path)#章節目錄path=path+'\\'+path2if not os.path.exists(path):os.mkdir(path)chrome=webdriver.Chrome()#"http://ac.qq.com/ComicView/index/id/505435/cid/2"chrome.get(url)time.sleep(4)imgs = chrome.find_elements_by_xpath("//div[@id='mainView']/ul[@id='comicContain']//img")for i in range(0, len(imgs)):js="document.getElementById('mainView').scrollTop="+str((i) * 1280)chrome.execute_script(js)time.sleep(3)print(imgs[i].get_attribute("src"))with open(path+'\\'+str(i)+'.png', 'wb') as f:f.write(requests.get(imgs[i].get_attribute("src")).content)chrome.close() print('下載完成') if __name__ == '__main__':getChapterUrl('http://ac.qq.com/Comic/ComicInfo/id/505435')簡單解釋
輸入一個漫畫的url即可爬取該漫畫所有的章節,由于是模擬用戶爬取的,所以速度方面有點慢,我試了下爬取銀魂前70章,用了1個半小時,代碼中的sleep可以適當簡短點已加快爬取的速度
付費的漫畫是沒有辦法爬取的
總結
以上是生活随笔為你收集整理的喜欢看漫画的小伙伴就不要错过啦,python批量爬取动漫免费看的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人人都道RAZ好,我读了400多本之后,
- 下一篇: Selenium操作cookie绕过验证