Scrapy框架(三)--全站数据爬取
scrapy基于Spider类的全站数据爬取
大部分的网站展示的数据都进行了分页操作,那么将所有页码对应的页面数据进行爬取就是爬虫中的全站数据爬取。
基于scrapy如何进行全站数据爬取呢?
1.将每一个页码对应的url存放到爬虫文件的起始url列表(start_urls)中。(不推荐)
2. 使用Request方法手动发起请求。(推荐)
需求:爬取校花网中的照片的名称
# -*- coding: utf-8 -*-
import scrapy class XiahuaSpider(scrapy.Spider):
name = 'xiahua'
# allowed_domains = ['www.xxx.com']
start_urls = ['http://www.521609.com/daxuemeinv/'] url = 'http://www.521609.com/daxuemeinv/list8%s.html' # 设定一个url模板
page_num = 2
def parse(self, response):
li_list = response.xpath('//*[@id="content"]/div[2]/div[2]/ul/li')
for li in li_list:
img_name = li.xpath('./a[1]/img/@alt').extract_first()
print(img_name)
if self.page_num <= 23: # 设总共23页
new_url = format(self.url%self.page_num)
self.page_num+=1
yield scrapy.Request(url=new_url,callback=self.parse) # 手动发起请求 数据解析在callback指定的函数中进行
Scrapy框架(三)--全站数据爬取的更多相关文章
- Scrapy 框架 CrawlSpider 全站数据爬取
CrawlSpider 全站数据爬取 创建 crawlSpider 爬虫文件 scrapy genspider -t crawl chouti www.xxx.com import scrapy fr ...
- 基于Scrapt框架的全站数据爬取
创建scrapy工程项目,除了爬虫文件中的代码需要略微修改,其他模块用法相同(如中间件,管道等): 爬虫文件代码流程 导入链接提取器 from scrapy.linkextractors import ...
- Day 21 21.1:CrawlSpider(全站数据爬取)
CrawlSpider(全站数据爬取) 实现网站的全站数据爬取 就是将网站中所有页码对应的页面数据进行爬取. crawlspider其实就是scrapy封装好的一个爬虫类,通过该类提供的相关的方法和属 ...
- scrapy框架基于CrawlSpider的全站数据爬取
引入 提问:如果想要通过爬虫程序去爬取”糗百“全站数据新闻数据的话,有几种实现方法? 方法一:基于Scrapy框架中的Spider的递归爬取进行实现(Request模块递归回调parse方法). 方法 ...
- 爬虫(十七):Scrapy框架(四) 对接selenium爬取京东商品数据
1. Scrapy对接Selenium Scrapy抓取页面的方式和requests库类似,都是直接模拟HTTP请求,而Scrapy也不能抓取JavaScript动态谊染的页面.在前面的博客中抓取Ja ...
- scrapy框架用CrawlSpider类爬取电影天堂.
本文使用CrawlSpider方法爬取电影天堂网站内国内电影分类下的所有电影的名称和下载地址 CrawlSpider其实就是Spider的一个子类. CrawlSpider功能更加强大(链接提取器,规 ...
- Python 之scrapy框架58同城招聘爬取案例
一.项目目录结构: 代码如下: # -*- coding: utf-8 -*- # Define here the models for your scraped items # # See docu ...
- python爬虫 scrapy框架(一)爬取壁纸照片
此项目仅供学习参考, 不用于任何商业用途 若侵权留言,立刻删除 刚入门爬虫不久,一心想找个网站试试,然后朋友推荐了这个壁纸网站
- scrapy框架之CrawlSpider全站自动爬取
全站数据爬取的方式 1.通过递归的方式进行深度和广度爬取全站数据,可参考相关博文(全站图片爬取),手动借助scrapy.Request模块发起请求. 2.对于一定规则网站的全站数据爬取,可以使用Cra ...
- 移动端数据爬取和Scrapy框架
移动端数据爬取 注:抓包工具:青花瓷 1.配置fiddler 2.移动端安装fiddler证书 3.配置手机的网络 - 给手机设置一个代理IP:port a. Fiddler设置 打开Fiddler软 ...
随机推荐
- 基于 eBPF 的 Kubernetes 可观测实践
简介: 阿里云可观测团队构建了 kubernetes 统一监控,无侵入式地提供多语言.应用性能黄金指标,支持多种协议,结合 Kubernetes 管控层与网络系统层监控,提供全栈一体式的可观测体验.通 ...
- 阿里云安全运营中心:DDoS攻击趁虚而入,通过代理攻击已成常态
应用层DDoS攻击与传统的DDoS攻击有着很大不同.传统的DDoS攻击通过向攻击目标发起大流量并发式访问造成服务不可用,系统瘫痪,这种方式比较容易被识破,且市场上已经有成熟的应对方案.而近年来兴起的应 ...
- KubeVela 1.0 :开启可编程式应用平台的未来
简介: 如果你对云原生领域不太关注,可能对 KubeVela 还没有做过太深入的了解.别着急,本文就借着 v1.0 发布之际,为你详细的梳理一次 KubeVela 项目的发展脉络,解读它的核心思想和愿 ...
- [Go] 浅谈 Golang Chan 通信与死锁:all goroutines are asleep - deadlock
Channel创建方式: var c1 chan [value type] c1 = make([channel type] [value type], [capacity]) [value type ...
- C# dotnet 的锁 SemaphoreSlim 和队列
本文主要是试验在顺序进入等待 SemaphoreSlim 的任务是否会按照顺序经过锁执行 我在一个有趣的WPF程序里面,需要限制任务同时执行的线程数量,不然用户就会说用我的程序会让电脑卡渣.而我的任务 ...
- Python采集知网
Python爬虫初探 selenium+beautifulsoup4+chromedriver 安装模块:* import pymssql* pip install bs4* pip install ...
- 特权同学笔记-《边练边学》-在QP里调用modelsim的步骤
在QP里调用Modelsim需要先设置仿真参数和工具路径. 在QP调用modelsim的步骤 1. 在QP里建立工程,代码,分析综合:2. 添加testbench代码,processing-start ...
- 如何对一个新的 VSCode 配置 LaTeX
texlive 的安装件参考资料 [1]. 往 VSCode 里面装 LaTeX Workshop 插件,也可以直接搜 James-Yu.latex-workshop. Ctrl+Shift+P 打开 ...
- 【股票爬虫教程】我用100行Python代码,爬了雪球网5000只股票,还发现一个网站bug!
目录 一.爬取目标 二.分析网页 三.爬虫代码 四.同步视频 五.get完整源码 一.爬取目标 您好,我是@马哥python说,今天继续分享爬虫案例. 爬取网站:雪球网的沪深股市行情数据 具体菜单:雪 ...
- Git——分支管理(2)
Git--分支管理(2) 提示:图床在国外且动图比较多的情况下,需要时间加载. 目录: 目录 Git--分支管理(2) 提示:图床在国外且动图比较多的情况下,需要时间加载. 目录: Git基础 Git ...