创建工程:
进入工程目录:
创建爬虫文件:
编写相关操作代码
执行工程:
爬虫文件剖析:
import scrapy
class QiushiSpider(scrapy.Spider):
name = ‘qiubai‘ #应用名称
#允许爬取的域名(如果遇到非该域名的url则爬取不到数据,一般注释)
allowed_domains = [‘https://www.qiushibaike.com/‘]
#起始爬取的url
start_urls = [‘https://www.qiushibaike.com/‘]
#访问起始URL并获取结果后的回调函数,该函数的response参数就是向起始的url发送请求后,获取的响应对象.该函数返回值必须为可迭代对象或者NUll
def parse(self, response):
print(response.text) #获取字符串类型的响应内容
print(response.body)#获取字节类型的相应内容
配置文件settings.py修改:
# Crawl responsibly by identifying yourself (and your website) on the user-agent
# 16行 定义请求头
USER_AGENT = ‘Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36‘
# 19行
# Obey robots.txt rules
# 不遵守robots协议
ROBOTSTXT_OBEY = False
scrapy基于xpath数据解析操作:
import scrapy
class QiushiSpider(scrapy.Spider):
#
name = ‘qiuShi‘
start_urls = [‘https://www.qiushibaike.com/text‘]
def parse(self, response):
#xpath为response中的方法,可以将xpath表达式直接作用于该函数中
div_list = response.xpath(‘//*[@id="content"]/div/div[2]/div‘)
print(type(div_list))
for div in div_list:
#xpath函数返回的为列表,列表中存放的数据为Selector类型的数据。我们解析到的内容被封装在了 Selector对象中,需要调用extract()函数将解析的内容从Selecor中取出。
name = div.xpath(‘./div[1]/a[2]/h2/text()‘)[0].extract()
content = div.xpath(‘./a//span/text()‘).extract()
#打印展示爬取到的数据
print(name,content)
原文:https://www.cnblogs.com/merryblogs/p/14338870.html