1.简单爬虫————爬取古诗网
2018-06-10 本文已影响0人
何阿驼
该文章仅供学习,如有错误,欢迎指出
1.开始创建一个项目
mkdir s古诗网
2.进入到文件夹下创建python3的虚拟环境
pipenv install scrapy
3.进入pipenv 下使用scrapy命令创建爬虫项目
pipenv shell
scrapy startproject gushi
cd gushi
scrapy genspider test www.gushiwen.org
这里写图片描述
完成项目的创建
4.写方法
这里对通用爬虫有两个方法
class TestSpider(scrapy.Spider):
name = 'test' #启动爬虫的名字
allowed_domains = ['www.lagou.com'] #域名,没啥
start_urls = ['http://www.lagou.com/'] #开始爬取的地址
def parse(self, response):
pass
def start_requests(self):
pass
#爬虫运行之后,程序会先去访问start_requests方法,之后访问start_urls,得到response之后将response交给parse方法
5.使用css选择器解析response 并用yield返回
def parse(self,response):
href = response.css('form .pagesright a::attr(href)')[0].extract()
next_url = response.urljoin(href)
item = gushiItem()
all = response.css('.sons')
for i in all[0:10]:
title = i.css('.cont p a b::text')[0].extract()
text = i.css('.contson p::text').extract()
if len(text) == 0:
text = i.css('.contson::text').extract()
chaodai_name = i.css('.source')
for j in chaodai_name:
chaodai = j.css('a::text')[0].extract()
name = j.css('a::text')[1].extract()
item['title'] = title
item['text'] = text
item['chaodai'] = chaodai
item['name'] = name
yield item
yield Request(next_url,callback=self.parse)
6.设定自己的item
class gushiItem(scrapy.Item):
title = scrapy.Field()
text = scrapy.Field()
chaodai = scrapy.Field()
name =scrapy.Field()
运行程序
scrapy crawl -o test.json #生成json文件
scrapy crwal -o test.csv #生成csv文件