scrapy startproject baidu_hot_bot
scrapy genspider hot_bot www.baidu.com
(1)在setting.py中添加配置
# 配置请求头中的User-Agent
USER_AGENT = '从浏览器请求中获取'
# 配置不遵守robots协议
ROBOTSTXT_OBEY = False
# 只有在错误的情况下才显示日志文件
LOG_LEVEL = 'ERROR'
(2)管道文件pipelines.py用于处理下载数据的后续处理
# 使用一个接口处理不同类型的实体
from itemadapter import ItemAdapter
class BaiduHotBotPipeline:
class process_item(self, item, spider):
return item
(3)在爬虫hot_bot.py中编写爬虫
import scrapy
class HotBotSpider(scrapy.Spider):
name = 'hot_bot' # 爬虫名称
# 允许的域名:限定的start_urls列表中那些url可以发送请求,可以不用指定
# allowed_domains = ['www.baidu.com']
# 起始url列表:scrapy自动对列表中的每个url发起请求
start_urls = ['https://www.baidu.com/']
# 当scrapy自动向url列表中每个url发出请求后,response保存响应结果,
# response.body响应的是二进制文件,response.text响应的是字符串,
# repsponse.xpath()是xpath方法的返回值类型是selector列表
def parse(self, response):
hots = response.xpath('//ul[@id="hotsearch-content-wrapper"]/li')
for hot in hots:
contents = hot.xpath("./a//span[@class='title-content-title']//text()").extract()
title = "".join(contents)
print(title)
scrapy crawl hot_bot