URL字段解析

Day85 URL 字段的解析

修改爬取的目标地址、 解析标题的超链接a标签的跳转地址和标题内容

10-04侠课岛    基础入门       

后端/后端/Python 由浅入深入门 5     0     145

总结

1.修改爬取的目标地址

  • 我们想要爬取网站的数据需要在spiders文件中创建一个蜘蛛,创建后这个蜘蛛中会生成一个类,类名是由蜘蛛名加Spider组成,如:DribbbleSpider,这个类中的name也就是蜘蛛的名称,allowed_domains是允许爬取网站的域名,start_urls是需要爬取的目标网站的网址,如果需要更改爬取的目标页面,只需要修改start_urls就可以了;

2.解析标题的超链接a标签的跳转地址和标题内容

  • 首先需要在parse(self,response)方法中使用response对象来对css选择器获取到的a元素的href值进行解析,如response.css('h2 a::attr(href)').extract(),这样就可以得到一个url列表;

  • 循环得到的列表,拿到每一个a标签的url地址,然后使用Request请求,需要传递两个参数,一个是url用于告诉我们接下来解析哪个页面,可以通过parse.urljoin()方法拼接页面链接,另一个是callback回调函数,这个回调函数也会传递一个response对象,通过这个response对象对css选择器获取的元素进行解析,如:response.css('headerh1::text').extract_first(),这样我们就可以拿到页面的标题内容了;

  • 如果想获取所有的标题内容,可以使用response对css选择器选取到的下一页a标签的url值进行解析,如果拿到的值不为空,可以通过Request再一次请求,此时的callback回调函数是parse函数,又会继续进行上一个页面相同的操作,拿到想要的标题内容;

3.Request对象的介绍

  • class scrapy.http.Request(url[, callback, method='GET', headers, body, cookies, meta, encoding='utf-8',priority=0, dont_filter=False, errback]),一个request对象代表一个HTTP请求,通常由Spider产生,经Downloader执行从而产生一个Response;

  • url:用于请求的URL;

  • callback:指定一个回调函数,该回调函数以这个request是的response作为第一个参数,如果未指定callback则默认使用spider的parse()方法;

  • method: HTTP请求的方法,默认为GET;

  • headers:请求的头部;

  • body:请求的正文,可以是bytes或者str;

  • cookies:请求携带的cookie;

  • meta:指定Request.meta属性的初始值,如果给了该参数,dict将会浅拷贝;

  • encoding:请求的编码, 默认为utf-8;

  • priority:优先级,优先级越高,越先下载;

  • dont_filter:指定该请求是否被 Scheduler过滤,该参数可以使request重复使用;

  • errback:处理异常的回调函数;

本教程图文或视频等内容版权归侠课岛所有,任何机构、媒体、网站或个人未经本网协议授权不得转载、转贴或以其他方式复制发布或发表。

评价

5

本课评分:
  •     非常好
难易程度:
  •     适中的

内容目录



|
教程
粉丝
主页

签到有礼

已签到2天,连续签到7天即可领取7天全站VIP

  • 1
    +2 金币
  • 2
    +3 金币
  • 3
    +5 金币
  • 6
    +7 金币
  • 5
    +6 金币
  • 4
    暖心福利
    自选分类VIP ×1天
  • 7
    惊喜大礼

    自选分类VIP ×3天 +20金币
  • 持续签到 +8 金币

金币可以用来做什么?