目录
Spider 的用法
变量
# 名字,要求全局唯一
name = 'douban'
# 运行爬取的网址
allowed_domains = ['movie.douban.com']
# 开始时爬取的 URL
start_urls = ['https://movie.douban.com/top250?start=0&filter=']
# 设置 settings 配置,会覆盖 settings.py 中配置的内容
custom_settings = {
"LOG_LEVEL": "WARNING"
}
函数
# 爬取之前调用函数
def start_requests(self):
url = 'https://movie.douban.com/top250?start=0&filter='
yield scrapy.Request(
# 爬之前把 URL 给改了
url=url,
# 然后调用爬取函数
callback=self.parse,
)
# 处理请求的函数
def parse(self, response):
print(response)
# 请求处理结束之后调用的函数
def close(spider, reason):
print("关闭时调用")
Spider 的常用解析函数
imgs = response.xpath('//ol[@class="grid_view"]/li')
for img in imgs:
# get() 用于获取某一个 xpath 的值
img_url = img.xpath('./div[@class="item"]/div[@class="pic"]/a/img/@alt').get()
print(img_url)
# getall() 用于获取多个 xpath 的值
img_url = img.xpath('./div[@class="item"]/div[@class="pic"]/a/img/@alt').getall()
print(img_url)
# extract() 等价于 getall()
img_url = img.xpath('./div[@class="item"]/div[@class="pic"]/a/img/@alt').extract()
print(img_url)
# extract_first() 等价于 get()
img_url = img.xpath('./div[@class="item"]/div[@class="pic"]/a/img/@alt').extract_first()
print(img_url)
# re() 根据正则表达式获取数据
img_url = img.xpath('./div[@class="item"]/div[@class="pic"]/a/img/@alt').re('肖.*')
print(img_url)
# re_first() 根据正则表达式获取第一个数据
img_url = img.xpath('./div[@class="item"]/div[@class="pic"]/a/img/@alt').re_first('肖.*')
print(img_url)
response 对象相关函数
# response.status 状态码
print(response.status)
# response.body 字节类型的请求内容
print(response.body)
# response.body.decode('utf-8') 转换成 utf-8 类型的请求内容
print(response.body.decode('utf-8'))
# response.url 请求的 URL
print(response.url)
# response.urljoin('abc') 拼接 URL
print(response.urljoin('abc'))
# response.encoding 当前页面中的 HTML 字符集编码
print(response.encoding)
标签:框架,img,url,spider,class,Scrapy,print,div,response
From: https://www.cnblogs.com/aduiduidui/p/17111852.html