一、crawlspider
引入:
回顾之前的代码中,我们有很大一部分时间在寻找下一页的url地址或者是详情页的url地址上面,这个过程能更简单一些么?
定义:
是scrpay另一种爬取数据的方式
学习目标:
了解crawlspider的使用
crawlspiser是继承与spider这个爬虫类
它的特点:
根据规则提取链接发送给引擎
如何创建crawlspider
scrapy genspider -t crawl xx xx.com
有些场景使用crawlspider还是比较方便 前提是什么 (url的规律是比较人容易用正则来实现的) []
正则表达式一定要写对
案例:
需求:1)进入首页 2)进入详情页获取诗歌名称
代码:(D:\python_spider\day22\ancient_poems\ancient_poems\spiders\poems.py)
import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
class PoemsSpider(CrawlSpider):
name = 'poems'
allowed_domains = ['gushiwen.cn','gushiwen.org']
start_urls = ['https://www.gushiwen.cn/default_1.aspx']
rules = (
Rule(LinkExtractor(allow=r'https://www.gushiwen.cn/default_[1,2].aspx'), follow=True),
Rule(LinkExtractor(allow=r'https://so.gushiwen.cn/shiwenv_\w+.aspx'), callback='parse_item', follow=True)
)
def parse_item(self, response):
item = {
}
#item['domain_id'] = response.xpath('//input[@id="sid"]/@value').get()
#item['name'] = response.xpath('//div[@id="name"]').get()
#item['description'] = response.xpath('//div[@id="description"]').get()
gsw_divs = response.xpath('//div[@class="left"]/div[@class="sons"]')
for gsw_div in gsw_divs:
title = gsw_div.xpath('.//h1/text()').get()
print(title)
return item
scrapy–Rule()与LinkExtractor()函数理解
Python爬虫之crawlspider类的使用
LinkExtractor的基本使用方法
二、scrapy实现登录
1 携带cookie向目标url发起请求
2 携带data(账号和密码)向目标url发送post请求
3 通过selenium来模拟登录 (input标签 切换登录方式 找到用户名和密码的输入框 定位按钮)
2.1cookie方式
2.1.1在爬虫程序中
第一种方式

本文介绍Scrapy框架下的crawlspider组件使用方法及其优势,并详细讲解Scrapy如何实现登录功能,包括利用cookie和POST请求两种方式。
最低0.47元/天 解锁文章
1511





