scrapy爬虫(一)——爬取小说
scrapy爬虫(一)——爬取小说
(一)建立项目 【scrapy爬虫(一)——爬取小说】? 建立一个文件夹,进入文件夹——进入cmd命令框创建项目
(c) 2018 Microsoft Corporation。保留所有权利。C:\Users\张华超\Desktop\petzhang>python -m scrapy startproject petspider
New Scrapy project 'petspider', using template directory 'D:\软件\python3.7\lib\site-packages\scrapy\templates\project', created in:
C:\Users\张华超\Desktop\petzhang\petspiderYou can start your first spider with:
cd petspider
scrapy genspider example example.comC:\Users\张华超\Desktop\petzhang>cd petspiderC:\Users\张华超\Desktop\petzhang\petspider>scrapy genspider petzhang purepen.com
Created spider 'petzhang' using template 'basic' in module:
petspider.spiders.petzhang
(二)编写程序
# -*- coding: utf-8 -*-
import scrapy
#解析网页一下四种方法,选哪个都可以
import re
#from bs4 import BeautifulSoup
#from lxml import etree
#from parsel import Selector#爬虫类 也是python中的类
class SsyySpider(scrapy.Spider):
name = 'ssyy'#爬虫名字
allowed_domains = ['purepen.com/']#网站
start_urls = ['http://www.purepen.com/sgyy/index.htm']#第一次开始采集的网址#start_urls采集的信息 返回的内容就交给了response
def parse(self, response):
#print(response.text)#打印网页的文本内容
#通过正则 提取文本中所有符合的内容
#.*?匹配任何你需要的信息
detailurl=re.findall('',response.text)
#print(detailurl)
#构造完整的网址
for url in detailurl[:10]:
#拼接网址(两个方法)
url='http://www.purepen.com/sgyy/%s' % url
#url=f'http://www.purepen.com/sgyy/{url}'
print(url)
#发出请求 获取详情页信息
yield scrapy.Request(url,callback=self.parseDetail,dont_filter=True)#dont_filter=True停用过滤功能(你要request的地址和allow_domain里面的冲突,从而被过滤掉。可以停用过滤功能。)def parseDetail(self, response):
#提取详情页数据
text=re.findall('(.*?)',response.text,re.S)
title=re.findall('(.*?) - 锐客网 ',response.text,re.S)
#print(text)
if text and title:
self.save2File(title[0],text[0])#将爬取的信息写入文本
@classmethod
def save2File(cls,title,text):
with open(f'{title}.txt','a',encoding='utf-8') as fp:
fp.write(text)
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 一个人的旅行,三亚
- 一个小故事,我的思考。
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 开学第一天(下)
- 一个人的碎碎念
- 2018年11月19日|2018年11月19日 星期一 亲子日记第144篇
- 遇到一哭二闹三打滚的孩子,怎么办┃山伯教育
- 第326天
- Y房东的后半生14
- 奔向你的城市