一、 Scrapy 框架的安装
pip3 install Scrapy
出现这个就证明安装好了
BUG传送门:error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools”
二、Scrapy 创建一个新的项目
创建项目:scrapy startproject ProgrammerPlus
作用:
scrapy.cfg
: 项目的配置文件
ProgrammerPlus/
: 该项目的python模块。在此放入代码(核心)
ProgrammerPlus/spiders/
: 放置spider代码的目录. (放爬虫的地方)
ProgrammerPlus/items.py
: 项目中的item文件.(这是创建容器的地方,爬取的信息分别放到不同容器里)
ProgrammerPlus/middlewares.py
: 放置spider代码的目录. (放爬虫的地方)
ProgrammerPlus/pipelines.py
: 项目中的pipelines文件.
ProgrammerPlus/settings.py
: 项目的设置文件.(里边有很多注释好的配置,使用的时候给#
删除即可)
进入项目:cd ProgrammerPlus
创建爬虫:scrapy genspider test(爬虫名) www.xxx.com(网站:可修改)
至此
Scrapy
处理最简单地爬虫需要的文件就准备好了
三、 Scrapy 项目基本配置
setting.py
设置成真实的浏览器的
User_Agent
# Crawl responsibly by identifying yourself (and your website) on the user-agent
USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4292.2 Safari/537.36'
当Item在Spider中被收集之后,它将会被传递到Item Pipeline,这些Item Pipeline组件按
setting.py
定义的优先级处理Item。
ITEM_PIPELINES = {‘组件’:
优先级}
# Configure item pipelines
# See https://docs.scrapy.org/en/latest/topics/item-pipeline.html
ITEM_PIPELINES = {
'ProgrammerPlus.pipelines.ProgrammerplusPipeline': 300,
}
设置日志等级
LOG_LEVEL = 'ERROR'
四、 用 Scrapy 写一个初级爬虫
text.py
import scrapy
class TestSpider(scrapy.Spider):
name = 'test'
# allowed_domains = ['www.xxx.com'] #
start_urls = ['https://www.sogou.com/web?query=ProgrammerPlus']
def parse(self, response):
page_list = response.xpath('//*[@id="main"]/div[4]/div/div[@class="rb"]')
for page in page_list:
title = page.xpath('./h3/a//text()').extract()
print(''.join(title))
在项目目录下,执行
scrapy crawl test