2:url有规律的多页面爬取
举例网站:http://www.luoo.net/music/期刊号
e.g:http://www.luoo.net/music/760
打算爬取其title:Hello World;pic;desc:本期音乐为......《8-bit Love》。
步骤:
1):建立项目
在shell中你对应的目录下:scrapy startproject luoo
在pycharm中打开luoo文件夹
2):编写items.py
1 import scrapy 2 class LuooItem(scrapy.Item): 3 url = scrapy.Field() 4 title = scrapy.Field() 5 pic = scrapy.Field() 6 desc = scrapy.Field()
3):编写spider 在spiders文件夹下建立luoospider.py
1 import scrapy 2 from luoo.items import LuooItem 3 4 class LuooSpider(scrapy.Spider): 5 name = "luoo" 6 allowed_domains = ["luoo.net"] 7 start_urls = [] 8 for i in range(750,763): 9 url = 'http://www.luoo.net/music/%s'%(str(i)) 10 start_urls.append(url) 11 12 def parse(self, response): 13 item = LuooItem() 14 item['url'] = response.url 15 item['title'] = response.xpath('//span[@class="vol-title"]/text()').extract() 16 item['pic'] = response.xpath('//img[@class="vol-cover"]/@src').extract() 17 item['desc'] = response.xpath('//div[@class="vol-desc"]/text()').extract() 18 return item
4)pipelines.py不动5)在command中进入luoo目录 scrapy list 列出可用的爬虫(luoo) scrapy crawl luoo -o result.csv(执行爬虫并且以result.csv保存到当前目录下)6)用notepad++打开result.py并且更改格式为ANSI后保存,再用excel打开就不会有乱码了 *遗留to do:1)数据考虑后期迁移到mysql数据库2)单独把图片保存到图片格式的文件夹中 memory:顺便附上两个月前用urllib库实现的此功能代码(python3.4) 现在看看用scrapy真的是方便太多了,更别提其牛逼呼呼的可扩展性:
1 import urllib.request 2 import re 3 import time 4 5 def openurl(urls): 6 htmls=[] 7 for url in urls: 8 req=urllib.request.Request(url) 9 req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36') 10 # Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0 11 response = urllib.request.urlopen(url) 12 htmls.append(response.read()) 13 time.sleep(5) 14 return htmls 15 16 def jiexi(htmls): 17 pics=[] 18 titles=[] 19 contents=[] 20 for html in htmls: 21 html = html.decode('utf-8') 22 pics.append(re.findall('<div class="player-wrapper".*?>.*?<img.*?src="(.*?).jp.*?".*?alt=".*"',html,re.S)) 23 titles.append(re.findall('class="vol-title">(.*?)</span>',html,re.S)) 24 contents.append(re.findall('<div.*?class="vol-desc">.*?(.*?)</div>',html,re.S)) 25 26 i = len(titles) 27 with open('C:\\Users\\Administrator\\Desktop\\test.txt', 'w') as f: 28 for x in range(i): 29 print("正在下载期刊:%d" %(746-x)) 30 f.write("期刊名:"+str(titles[x])[2:-2]+"\n") 31 f.write("图片链接:"+str(pics[x])[2:-2]+".jpg\n") 32 content = str(contents[x])[4:-2] 33 content.strip() 34 print(content.count("""<br>\n""")) 35 content.replace("""<br>\n""","#") 36 f.write("配诗:"+content+"\n\n\n") 37 38 39 yur='http://www.luoo.net/music/' 40 urls = [] 41 for i in range(657,659): 42 urls.append(yur + str(i)) 43 44 htmls = openurl(urls) 45 pics = jiexi(htmls)
转载于:https://www.cnblogs.com/pengsixiong/p/4908595.html
2:url有规律的多页面爬取相关推荐
- python 网络页面爬取
4.22 python 网络页面爬取 对国家体育总局(例)页面进行简单爬取 运行结果截图: 代码: import requests url="http://www.sport.gov.cn/ ...
- 唐诗页面爬取 --- 预研阶段
页面爬取阶段 (1)获取列表页 (2)获取详情页 获取到每一首唐诗的详情页 根据其html文件的标签属性等,筛选出我们需要的东西,如 题目.朝代.作者.正文等-- 插入数据库阶段: 拿到我们需要的东西 ...
- python爬虫二级子页面爬取
python爬虫二级页面爬取 文章目录 python爬虫二级页面爬取 前言 一.流程 二.操作部分 1.请求头设置 2.第一级页面爬取 3.二级页面内容爬取 4.运行结果 前言 推荐一个爬虫的小玩意 ...
- scrapy实现二级页面爬取(以小说为例)
1.scrapy图解 2.创建项目 scrapy startproject 项目名 创建后的目录 3.编写字段 在items.py中编写需要的字段,这里就写小说的章节和内容 class Xiaoshu ...
- 爬虫入门—requests模块基础之关键字搜狗搜索信息页面爬取
爬虫入门-requests模块基础之关键字搜狗搜索信息页面爬取 Author: Labyrinthine Leo Init_time: 2021.02.16 Key Words: Spider.r ...
- 爬虫快速入门(一):静态页面爬取
在这个数据为王的时代,掌握一手好的模型炼丹技巧还远远不够,有时候就是那么一小撮数据,就会对模型性能产生至关重要的影响.虽说大一点的公司一般都有专门负责爬虫的同学,但求人不如求己,每一位炼丹师都应该掌握 ...
- 基于python爬虫————静态页面和动态页面爬取
基于python爬虫----静态页面和动态页面爬取 文章目录 基于python爬虫----静态页面和动态页面爬取 1. 爬虫的原理 2. 用正则表达式匹配获取数据 3. 页面源码解析 4. 通过req ...
- scrapy模拟浏览器爬取51job(动态渲染页面爬取)
scrapy模拟浏览器爬取51job 51job链接 网络爬虫时,网页不止有静态页面还有动态页面,动态页面主要由JavaScript动态渲染,网络爬虫经常遇见爬取JavaScript动态渲染的页面. ...
- python爬爬爬之单网页html页面爬取
python爬爬爬之单网页html页面爬取 作者:vpoet 日期:大约在夏季 注:随意copy 不用告诉我 #coding:utf-8 import urllib2 Response=urllib2 ...
最新文章
- 如何在Windows Server 2008 Core里面添加Role~~~
- rowbounds分页oracle,Oracle使用MyBatis中RowBounds实现分页查询功能
- 【Linux】文件特殊权限 SUID/SGID/Sticky Bit
- PHP面向对象基础总结
- [推荐]Windows2003 Server 设置大全(一)
- android搭建https,android 搭建https Server(示例代码)
- SQL Server表竖列转横向显示
- 【Spark Summit EU 2016】Glint: Spark的异步参数服务器
- 《FLUENT 14流场分析自学手册》——1.5 湍流模型
- 乐易佳苹果手机恢复软件
- 教育心理学有一句名言
- 原生WebGL场景中绘制多个圆锥圆柱
- 从西天取经的九九八十一难来看Java设计模式:模板方法模式
- 常用的一句话反弹shell总结
- 数学分析第二型曲线积分2021.6.2
- java qq登陆界面源码下载_javaSwingQQ登录界面
- 如何使用计算机的加减乘除,计算机是怎么懂加减乘除的
- python正则表达式\d 匹配数字\D 匹配非数字\w 匹配单词\W 匹配非单词字符
- H6机顶盒Android编译[2]-Android编译
- 3dmax如何拆分模型_3dmax分割模型操作方法五步轻松搞定
热门文章
- mysql 插入前查重_插入新数据是直接查重,如果有重复则不插入数据
- 原生JS实现Ajax下载文件
- 安卓 java 视频_安卓实战项目-动态桌面-rxjava实现搜索本地所有视频
- Codeforces Round #716 (Div. 2) C. Product 1 Modulo N
- 用python导出pptx中每一页的标题
- 牛客竞赛,ZUST第17届公开赛,摸鱼记(A、DEFGH、J题解,3/7题代码)
- 【软考】2020年全国计算机技术与软件专业技术资格考试,软件设计师,考纲
- Servlet→对象监听器、事件监听器、Session钝化活化、@WebListener标注、过滤器概念原理生命周期、过滤器链、@WebFilter标注、定时器Timer、cancel()、purge
- python socket客户端_python 使用socket模拟tcp客户端和tcp服务器端
- 防淘宝关闭二维码案例