文章目录
常用的命令
Scrapy是一个用于爬取网站数据的Python框架,以下是一些常用的Scrapy命令:
开始的时候 用 cd 进入你想创建scrapy 的文件夹 ,然后开始下面的操作
-
创建新的Scrapy项目:
scrapy startproject project_name
这个命令会创建一个新的Scrapy项目,其中
project_name
是你为项目指定的名称。 -
创建一个新的Spider:
scrapy genspider spider_name website_url
这个命令会生成一个新的Spider文件,你需要提供
spider_name
作为Spider的名称和website_url
作为爬取的起始网址。 -
运行Spider:
scrapy crawl spider_name
这个命令会启动指定的Spider,开始爬取数据。你需要将
spider_name
替换为你要运行的Spider的名称。 -
导出爬取数据为JSON文件:
scrapy crawl spider_name -o output.json
这个命令会运行Spider并将爬取的数据导出为一个JSON文件。你可以将
output.json
替换为你想要的输出文件名和格式。 -
导出爬取数据为CSV文件:
scrapy crawl spider_name -o output.csv
这个命令与上面的命令类似,不过它将数据导出为CSV格式。
-
查看可用的Spider:
scrapy list
这个命令会列出项目中所有可用的Spider,你可以选择其中一个来运行。
-
检查Spider的数据爬取情况:
scrapy crawl spider_name --loglevel=INFO
这个命令会以INFO级别的日志显示Spider的爬取情况,有助于调试和监视爬取过程。
-
检查Spider的爬取速度和性能:
scrapy crawl spider_name --profile=output.cprofile
这个命令会生成性能分析文件,你可以使用工具来分析Spider的性能瓶颈。
开始爬虫
请求与响应
python
import scrapy
class ExampleSpider(scrapy.Spider):
name = "example" #爬虫的名字(唯一)
allowed_domains = ["ssr1.scrape.center"] # 限定的域名,可选
start_urls = ["https://ssr1.scrape.center/"] #当前的域名
def parse(self, response):
# 当在命令行运行scrapy crawl example 之后会发送请求,得到一个响应对象responce
print(response.text)
print(response.status)
pass
让控制台只输出想要的信息
在你的settings 文件中加入
python
LOG_FILE = "爬虫名字.log"
这样,那些日志就只会存储在日志文件中,而不是在控制台中
创建一个py 文件来帮忙运行爬虫
在你的爬虫项目里创建一个py 文件
在你的run 文件中
python
from scrapy.cmdline import execute
execute(["scrapy","crawl","example"])
# 对应于你的运行scrapy crawl example
#这样你就可以直接运行run 文件来实现你的结果了
工作原理图
实战
网站https://ssr1.scrape.center/
爬取电影名
python
import scrapy
from lxml import etree
class ExampleSpider(scrapy.Spider):
name = "example" #爬虫名字
allowed_domains = ["ssr1.scrape.center"] #限定的域名(可选)
start_urls = ["https://ssr1.scrape.center/"]# 起始的域名
def parse(self, response):
html = etree.HTML(response.text)#对返回的html 文本进行解析
allname = html.xpath(r'//h2[@class="m-b-sm"]/text()')# 寻找电影名字
print(allname)
pass
效果: