是为了爬取网站数据,提取结构性数据而编写的应用框架,可应用在包括数据挖掘、信息处理或存储历史数据等一系列程序中
(一)安装
pip install scrapy -i https://pypi.douban.com/simple
报错:
WARNING: You are using pip version 21.3.1; however, version 22.1.2 is available.
You should consider upgrading via the 'D:\PythonCode\venv\Scripts\python.exe -m pip install --upgrade pip' command.
解决办法:运行python -m pip install --upgrade pip
(二)基本使用
scrapy startproject scrapy_baidu_01D:\P ythonCode\venv\ScriptsD:\PythonCode\venv\Scripts\scrapy_baidu_01\scrapy_baidu_01\spiders>scrapy genspider 爬虫文件名字 要爬取的网页scrapy crawl 爬虫的名字名字是[name = ‘baidu’] import scrapy
class BaiduSpider(scrapy.Spider):
# 爬虫的名字,使用的值
name = 'baidu'
# 允许访问的域名
allowed_domains = ['www.baidu.com']
# 起始的url地址 第一次要访问的域名
# start_urls实在allowed_domains的前面添加一个http://,在后面添加了/
start_urls = ['http://www.baidu.com/']
# 执行了start_urls之后执行的方法,方法中的response是返回的对象,相当于
# response = urllib.request.urlopen()
# response = requests.get()
def parse(self, response):
print('ssssss')
1. scrapy项目的结构

2. response的属性和方法
response.text获取的是响应的字符串
response.body获取二进制数据
response.xpath可以直接使用xpath方法来解析response中的内容
response.extract() 用于提取seletor对象中的data属性值
response.extract_first() 提取seletor列表的第一个数据
import scrapy
class CarSpider(scrapy.Spider):
name = 'car'
allowed_domains = ['car.autohome.com.cn/price/brand-15.html']
start_urls = ['https://car.autohome.com.cn/price/brand-15.html']
def parse(self, response):
name_list = response.xpath('//div[@class="main-title"]/a/text()')
price_list = response.xpath('//div[@class="main-lever"]//span/span/text()')
for i in range(len(name_list)):
name = name_list[i].extract()
price = price_list[i].extract()
price(name,price)
scrapy工作原理【灰常重要!!】


直接输入指令:scrapy shell www.baidu.com


