一、安装scrapy
- 创建虚拟环境
- 运行命令:conda create -n scrapy python=3.7 ,会在anaconda安装目录下的envs文件夹下创建出scrapy运行环境:~/anaconda3/envs/scrapy/
- 切换到刚刚创建的scrapy虚拟环境,运行命令:pip install scrapy
- pycharm设置刚刚创建的解释器
二、创建爬虫py文件
import scrapy
class JobboleSpider(scrapy.Spider): # 继承自scrapy的Spider类
name = 'jobbole' # 爬虫名称
start_urls = ['http://blog.jobbole.com/all-posts/'] # 种子url
def parse(self, response): # 参数response为种子url的response,parse为start_urls的默认回调的解析方法
for href in response.css("a.archive-title::attr(href)"): # css选择器
full_url = response.urljoin(href.extract()) # 获取到绝对url
yield scrapy.Request(full_url, callback=self.parse_article) # 为该url设置回调解析方法
def parse_article(self, response): # 文章解析方法
yield {
'title': response.css("div.entry-header h1::text").extract()[0], # css选择器
'date': response.css("p.entry-meta-hide-on-mobile::text").extract()[0].replace('·', '').strip(), # css选择器
}
三、运行爬虫
- 回到刚刚的命令行运行命令:scrapy runspider jobbole_spider.py -o jobbole.json -s FEED_EXPORT_ENCODING=UTF-8(注意如果不加上-s FEED_EXPORT_ENCODING=UTF-8的话,中文会显示为unicode),运行完成后,就会在当前目录下面看到jobbole.json