前言

一个月前曾学习过爬取腾讯动漫全站的示例代码,现在再用scrapy尝试

过程

新建spider爬虫

编写普通selenium爬虫爬取漫画

观察网页,确定目标


本次目标是爬取热门排行下的漫画

右键检查可以发现漫画标题和链接可以轻松获取(前提是用selenium)

爬取内容

主要目的是为了练习scrapy的selenium,方便起见,只爬取第一部漫画`的少量信息

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import time
driver = webdriver.Chrome()
url = "https://ac.qq.com/"
driver.get(url)
#显示等待
time.sleep(2)
subjects = driver.find_elements_by_xpath("//a[contains(@class,'in-rank-name')]")
subject = subjects[0]
title = subject.text
print(title)
href = subject.get_attribute("href")
print(href)

爬取得到

无限破狱者
https://ac.qq.com/Comic/comicInfo/id/649370

然后用selenium进入该漫画网址并点击阅读

driver.get(manhua_url)
time.sleep(2)
driver.find_element_by_xpath("/html/body/div[3]/div[3]/div/div/div[2]/em/div/div[1]/div/a").click()
time.sleep(2)
#操作滚动条
js = 'var q=document.getElementById("mainView").scrollTop = ' + str(100 * 1000)#这个不知如何找是重点#执行滑动选项
driver.execute_script(js)
#延时,使图片充分加载
time.sleep(2)
img_list = driver.find_elements_by_xpath("//img[contains(@class,'loaded')]")
for i in img_list:print(i.get_attribute("src"))

得到

https://manhua.acimg.cn/manhua_detail/0/03_16_24_a7ac725928a655f2f8538a2ee1e46b8f5_115731672.jpg/0
https://manhua.acimg.cn/manhua_detail/0/03_16_24_a62281dd035262f3a21ef4f03fc92e411_115731695.jpg/0
https://manhua.acimg.cn/manhua_detail/0/03_16_24_ac9393b3d58918890d808c3139a91f840_115731692.jpg/0
https://manhua.acimg.cn/manhua_detail/0/03_16_24_a668de4c3ad19e491aa91f561b890e395_115731723.jpg/0
https://manhua.acimg.cn/manhua_detail/0/03_16_24_a3b706d347a1317b9a9a3ecea4688afc5_115731699.png/0

此时selenium爬取主要思路已经完成,接下来是用scrapy完成这个思路

使用scrapy

流程梳理和重点分析

  1. 重点是midderware的改写
  2. settings.py先打开下载中间件
  3. 然后midderwares.py改写
  4. 接着tengxun.py编写爬虫,其中LinkExtractor的规则制定是重点
  5. 过程中的bug可能不好找到排除

过程

改写midderwares.py

from scrapy import signals
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from scrapy.http.response.html import HtmlResponseclass ManhuaDownloaderMiddleware:def __init__(self):self.driver = webdriver.Chrome()def process_request(self, request, spider):self.driver.get(request.url)response = HtmlResponse(request.url, body=self.driver.page_source, request=request, encoding='utf-8')return response

settings.py打开中间件

DOWNLOADER_MIDDLEWARES = {'manhua.middlewares.ManhuaDownloaderMiddleware': 543,
}

编写爬虫

2021-02-21
腾讯动漫网页好像有变化

现在图片url从网页直接获取不到
用selenium也没用,也许只能通过分析接口获取

不过增加了了scrapy加selenium的熟练度
放一下已经没用了的代码,改一下domains,start_urls,Rule也能爬取别的东西,scrapy框架一招鲜吃遍天

from scrapy.spiders import CrawlSpider,Rule
from scrapy.linkextractors import LinkExtractorclass TengxunSpider(CrawlSpider):name = 'tengxun'allowed_domains = ['ac.qq.com']start_urls = [r'https://ac.qq.com/']rules = [Rule(link_extractor=LinkExtractor(allow=r'https://ac.qq.com/Comic/comicInfo/id/648421'),  follow=True),Rule(link_extractor=LinkExtractor(allow=r'https://ac.qq.com/ComicView/index/id/648421/cid/1'), callback="parse_detail", follow=False),]def parse_detail(self, response):title = response.xpath("//text()").get()print(title)

总结

1.scrapy+selenium比单纯的用selenium强了无数倍,速度极快,简化操作,无需等待无需定位,可以专心解析
2.有时parse_detail函数没有被调用,此疑问待解决

scrapy实践二(selenium爬取腾讯漫画【失败】)相关推荐

  1. 使用selenium爬取腾讯动漫!国漫也有好看的!

    前言 本来只是想学习一下selenium模块的简单使用,然后一直添加功能,感觉能把它变成一个项目了,于是乎,就有了这篇文章 写得很烂,速度很慢,但不影响这是我的第一次尝试,如果师傅们花时间看看我的代码 ...

  2. 使用selenium爬取腾讯动漫

    文章目录 前言 一.Download.py 1.导入模块 2.构造Download类 3.Download 类中的函数 (1)login() (2)loading() (3)comic_info() ...

  3. Scrapy框架学习笔记 - 爬取腾讯招聘网数据

    文章目录 一.Scrapy框架概述 (一)网络爬虫 (二)Scrapy框架 (三)安装Scrapy框架 (四)Scrapy核心组件 (五)Scrapy工作流程 二. Scrapy案例演示 (一)爬取目 ...

  4. 使用selenium爬取腾讯热点新闻

    在爬取之前我一直都陷入了一个误区,我认为只用selenium就可以实现这个工作,事实上它确实是可以,只不过selenium是自动化测试工具,可以驱动浏览器(有界面,无界面)来执行特定的操作,可以模仿人 ...

  5. 【scrapy实践】_爬取安居客_广州_新楼盘数据

    需求:爬取[安居客-广州-新楼盘]的数据,具体到每个楼盘的详情页的若干字段. 难点:楼盘类型各式各样:住宅 别墅 商住 商铺 写字楼,不同楼盘字段的名称不一样.然后同一种类型,比如住宅,又分为不同的情 ...

  6. 腾讯爬虫python_Python爬虫,爬取腾讯漫画实战

    先上个爬取的结果图 最后的结果为每部漫画按章节保存 运行环境 IDE VS2019 Python3.7 先上代码,代码非常简短,包含空行也才50行,多亏了python强大的库 importosimpo ...

  7. python 爬取腾讯漫画

    先上个爬取的结果图 最后的结果为每部漫画按章节保存 运行环境 IDE VS2019 Python3.7 Chrome.ChromeDriver Chrome和ChromeDriver的版本需要相互对应 ...

  8. python爬取收费漫画_Python爬虫,爬取腾讯漫画实战

    先上个爬取的结果图 最后的结果为每部漫画按章节保存 运行环境 ide vs2019 python3.7 chrome.chromedriver chrome和chromedriver的版本需要相互对应 ...

  9. python爬取收费漫画_python爬取收费漫画_Python爬虫,爬取腾讯漫画实战

    先上个爬取的结果图 最后的结果为每部漫画按章节保存 运行环境 ide vs2019 python3.7 chrome.chromedriver chrome和chromedriver的版本需要相互对应 ...

最新文章

  1. 清华学长手把手带你做UI自动化测试
  2. 关于运行robot framework 报错解决方法,ModuleNotFoundError: No module named 'robot'
  3. iOS 中导航控制器全屏向右滑动返回上一界面
  4. Python | 5分钟搞定 Python3 元组
  5. 系统图标及其注册表项
  6. redis详细配置文件
  7. python里的拆包、引用、递归与匿名函数
  8. Linux下java进程CPU占用率高分析方法
  9. Kubernetes 小白学习笔记(23)--kubernetes的运维-管理Pod
  10. crossplaform---Nodejs in Visual Studio Code 04.Swig模版
  11. Cadence 17.4 PSpice 学习笔记
  12. 数据创造价值,数据分析主要为哪几步?
  13. Superfetch与Readyboost完全解析
  14. Unity开发常用工具
  15. 我用 Python 写了个基金涨跌通知助手
  16. 立创EDA能代替传统的PCB设计软件么?比如AD、protel等?可以
  17. OpenMP 参考(指令详解)
  18. 还在花钱抢票?12306 已屏蔽60款抢票软件!
  19. 银屑病与大肠相关机制(调研手稿五)
  20. 拼多多引流大法,日引百人太简单

热门文章

  1. 危机边缘-迷离档案第一季~第五季
  2. 【小陈睡不醒SD卡数据读取以及Altium Designer绘制stm32最小系统原理图及stm32+SD卡绘制】
  3. 英语入门怎么学,负基础
  4. 淘宝客订单查询API返回参数说明
  5. 休息,考完了MCSD
  6. 如师通语言学习软件(罗赛塔石碑)/Rosetta Stone 安装方法
  7. 三款主流文件校验码工具HashCalc、WinMD5、Hasher
  8. 提起薛定谔,除了“猫”你还能想到啥?
  9. 符咒AA4属性转移模块
  10. 前程无忧51job爬虫利用selenium爬取岗位信息-2021年10月29日