Python爬虫,爬取漫画实战

2019-09-06| 发布者: admin| 查看: |

最后的结果为每部漫画按章节保存

 

 运行环境

ide vs2019

python3.7

chrome、chromedriver

chrome和chromedriver的版本需要相互对应

先上代码,代码非常简短,包含空行也才50行,多亏了python强大的库

import os
import time
import requests
from selenium import webdriver
from lxml import etree
def getchapterurl:
 headers = {
 "user-agent": "mozilla/5.0  applewebkit/537.36  chrome/66.0.3359.139 safari/537.36"
 part_url = "http://ac.qq.com"
 res = requests.get
 html=res.content.decode
 el = etree.html
 li_list = el.xpath
 for li in li_list:
 for p in li.xpath:
 for span in p.xpath:
 item = {}
 list_title = span.xpath[0].replace.split
 if list_title[1].startswith):
 getchapterfile[0], list_title[0],list_title[1])
def getchapterfile:
 #path = os.path.join
 #漫画名称目录
 path=os.path.join
 if not os.path.exists:
 os.mkdir
 #章节目录
 path=path+'\'+path2
 if not os.path.exists:
 os.mkdir
 chrome=webdriver.chrome
 #"http://ac.qq.com/comicview/index/id/505435/cid/2"
 chrome.get
 time.sleep
 imgs = chrome.find_elements_by_xpath
 for i in range):
 js="document.getelementbyid.scrolltop="+str * 1280)
 chrome.execute_script
 time.sleep
 print)
 with open+'.png', 'wb') as f:
 f.write).content)
 chrome.close 
 print 
if __name__ == '__main__':
 getchapterurl

简单解释

输入一个漫画的url即可爬取该漫画所有的章节,由于是模拟用户爬取的,所以速度方面有点慢,我试了下爬取银魂前70章,用了1个半小时,代码中的sleep可以适当简短点已加快爬取的速度

付费的漫画是没有办法爬取的

 

谈一下过程中遇到的坑

的漫画网站打开章节时没有把所有图片的url都加载出来,所以我在这里用的方式是使用selenium来模拟用户操作,每次打开页面以后使用js操作滚动条下拉

 

最后再贴下代码库,其实贴出的代码已经是所有的代码了

https://dev.azure.com/shenjuncaci/pythontecentmanhua