举例网站: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

 import scrapy
class LuooItem(scrapy.Item):
url = scrapy.Field()
title = scrapy.Field()
pic = scrapy.Field()
desc = scrapy.Field()

3):编写spider
  在spiders文件夹下建立luoospider.py   
 import scrapy
from luoo.items import LuooItem class LuooSpider(scrapy.Spider):
name = "luoo"
allowed_domains = ["luoo.net"]
start_urls = []
for i in range(750,763):
url = 'http://www.luoo.net/music/%s'%(str(i))
start_urls.append(url) def parse(self, response):
item = LuooItem()
item['url'] = response.url
item['title'] = response.xpath('//span[@class="vol-title"]/text()').extract()
item['pic'] = response.xpath('//img[@class="vol-cover"]/@src').extract()
item['desc'] = response.xpath('//div[@class="vol-desc"]/text()').extract()
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真的是方便太多了,更别提其牛逼呼呼的可扩展性:
 import urllib.request
import re
import time def openurl(urls):
htmls=[]
for url in urls:
req=urllib.request.Request(url)
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')
# Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
response = urllib.request.urlopen(url)
htmls.append(response.read())
time.sleep(5)
return htmls def jiexi(htmls):
pics=[]
titles=[]
contents=[]
for html in htmls:
html = html.decode('utf-8')
pics.append(re.findall('<div class="player-wrapper".*?>.*?<img.*?src="(.*?).jp.*?".*?alt=".*"',html,re.S))
titles.append(re.findall('class="vol-title">(.*?)</span>',html,re.S))
contents.append(re.findall('<div.*?class="vol-desc">.*?(.*?)</div>',html,re.S)) i = len(titles)
with open('C:\\Users\\Administrator\\Desktop\\test.txt', 'w') as f:
for x in range(i):
print("正在下载期刊:%d" %(746-x))
f.write("期刊名:"+str(titles[x])[2:-2]+"\n")
f.write("图片链接:"+str(pics[x])[2:-2]+".jpg\n")
content = str(contents[x])[4:-2]
content.strip()
print(content.count("""<br>\n"""))
content.replace("""<br>\n""","#")
f.write("配诗:"+content+"\n\n\n") yur='http://www.luoo.net/music/'
urls = []
for i in range(657,659):
urls.append(yur + str(i)) htmls = openurl(urls)
pics = jiexi(htmls)

2:url有规律的多页面爬取的更多相关文章

  1. python3编写网络爬虫14-动态渲染页面爬取

    一.动态渲染页面爬取 上节课我们了解了Ajax分析和抓取方式,这其实也是JavaScript动态渲染页面的一种情形,通过直接分析Ajax,借助requests和urllib实现数据爬取 但是javaS ...

  2. 【图文详解】scrapy爬虫与动态页面——爬取拉勾网职位信息(2)

    上次挖了一个坑,今天终于填上了,还记得之前我们做的拉勾爬虫吗?那时我们实现了一页的爬取,今天让我们再接再厉,实现多页爬取,顺便实现职位和公司的关键词搜索功能. 之前的内容就不再介绍了,不熟悉的请一定要 ...

  3. 爬虫系列5:scrapy动态页面爬取的另一种思路

    前面有篇文章给出了爬取动态页面的一种思路,即应用Selenium+Firefox(参考<scrapy动态页面爬取>).但是selenium需要运行本地浏览器,比较耗时,不太适合大规模网页抓 ...

  4. 爬虫系列4:scrapy技术进阶之多页面爬取

    多页面爬取有两种形式. 1)从某一个或者多个主页中获取多个子页面的url列表,parse()函数依次爬取列表中的各个子页面. 2)从递归爬取,这个相对简单.在scrapy中只要定义好初始页面以及爬虫规 ...

  5. Python Requests库入门——应用实例-京东商品页面爬取+模拟浏览器爬取信息

    京东商品页面爬取 选择了一款荣耀手机的页面(给华为打广告了,荣耀play真心不错) import requests url = "https://item.jd.com/7479912.ht ...

  6. scrapy之盗墓笔记三级页面爬取

    #今日目标 **scrapy之盗墓笔记三级页面爬取** 今天要爬取的是盗墓笔记小说,由分析该小说的主要内容在三级页面里,故需要我们 一一解析 *代码实现* daomu.py ``` import sc ...

  7. python爬爬爬之单网页html页面爬取

    python爬爬爬之单网页html页面爬取 作者:vpoet mail:vpoet_sir@163.com 注:随意copy 不用告诉我 #coding:utf-8 import urllib2 Re ...

  8. 使用requests简单的页面爬取

    首先安装requests库和准备User Agent 安装requests直接使用pip安装即可 pip install requests 准备User Agent,直接在百度搜索"UA查询 ...

  9. 3:url无规律的多页面爬取

    试例网站:豆瓣电影TOP250:http://movie.douban.com/top250 关键点:在审查元素下查看后页即可以看到跳转的url.而且最后一页就此属性就没有了. 由于关键是实现分页,所 ...

随机推荐

  1. rpc和websocket的区别

    虽然很久以前用过rpc但是当时没用过websocket,也没做过对比,现在就对比一下 rpc的用法是客户端直接调用服务端的函数,其实他就是把数据传给服务端,服务端处理完以后返回给客户端, websoc ...

  2. mysql-1862、1820、java.sql.SQLException: Your password has expired. To log in you must change it using a client that supports expired passwords.

    之前一直运行的好好的,突然mysql就无法工作了.请求命令后报错误:ERROR 1820 (HY000): You must SET PASSWORD before executing this st ...

  3. AJAX快速上手

    创建XMLHttpRequest对象 xmlHttp = new XMLHttpRequest(); xmlHttp = new ActiveXObject('Microsoft.XMLHTTP'); ...

  4. Project: Individual Project - Word frequency program-11061160顾泽鹏

    一.预计用时: (1)明确要求:15min: (2)文件的遍历:1h: (3)Simple mode 词频统计:0.5h: (4)extend mode 词频统计:1h: (5)对单词词频排序输出:0 ...

  5. PullToRefreshListView 内嵌checkbox 数据丢失问题

    在PullToRefreshListView 内部内嵌了Checkbox如下图所示: 原本设计思路是:对CheckBox 进行 setOnCheckedChangeListener 监听 当Check ...

  6. HAVING 子句 (SQL Server Compact)

    MSDN官方文献 原文地址:http://technet.microsoft.com/zh-cn/library/ms173260.aspx

  7. USACO6.4-The Primes

    The Primes IOI'94 In the square below, each row, each column and the two diagonals can be read as a ...

  8. 扩展Visual Studio IDE

    安装visual studio 2012 SDK 下载visual studio SDK. 安装可能遇到的问题 安装时报错:Visual Studio 2012 Install Fails: Prog ...

  9. sicily 4379 bicoloring

    题意:输入一个简单(无多重边和自环)的连通无向图,判断该图是否能用黑白两种颜色对顶点染色,使得每条边的两个端点为不同颜色. 解法:由于无自连通节点存在,所以只需进行一次宽搜,遍历所有的点和所有的边,判 ...

  10. 从epoll构建muduo-11 单线程Reactor网络模型成型

    mini-muduo版本传送门 version 0.00 从epoll构建muduo-1 mini-muduo介绍 version 0.01 从epoll构建muduo-2 最简单的epoll ver ...