温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python Scrapy爬虫框架如何使用

发布时间:2021-11-23 18:09:42 来源:亿速云 阅读:176 作者:iii 栏目:大数据

本篇内容介绍了“Python Scrapy爬虫框架如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1、项目创建

创建一个Scrapy项目非常简单,一般快速创建可以通过终端直接输入如下代码:

scrapy startproject zhuanti_new

        如果要在不同的文件中创建此项目,就需要先找到对应的文件路径,当然你也可以通过pycharm,直接在对应的文件中,点击左下角终端进行创建,项目就直接在对应的项目文件中创建了一个Scrapy项目

Python Scrapy爬虫框架如何使用

2、Scrapy项目文件介绍

        通过下面截图可以看到一个Scrapy项目有哪些文件,同时还需要创建和生成哪些文件,接下来逐一介绍。

Python Scrapy爬虫框架如何使用

(1)最顶层的zhuanti_new文件夹是Scrapy的项目名称

(2)第2层有4个文件:

第1个:和项目名称相同的文件,就是我们通常叫的爬虫包,所有的爬虫代码都在这个包里面

第2个:mian文件,是用来运行这个项目的主函数代码文件,代码写完后通过这个文件总体运行

第3个:配置文件,说明一下默认设置文件的位置为zhuanti_new模块下的settings文件,同时定义项目名称为:zhuanti_new

第4个:为存储爬取结果的txt文件

针对第一个文件里面的代码重点文件下面逐一介绍一下:

(1)items.py文件:定义爬虫抓取的字段信息

Python Scrapy爬虫框架如何使用

(2)pipelines.py文件:主要用于数据处理、清洗和存储

Python Scrapy爬虫框架如何使用

(3)settings.py:主要用于设置请求头、报警处理等相关问题

Python Scrapy爬虫框架如何使用

(4)zhuantispider.py文件:重点爬取数据过程的代码文件,也是新建立的文件

代码如下:

from zhuanti_new.items import ZhuantiNewItemimport scrapyfrom scrapy.selector import Selector
class JianshuSpiderSpider(scrapy.Spider):   name = 'zhuantispider'   allowed_domains = ['jianshu.com']   start_urls = ['https://www.jianshu.com/recommendations/collections?page=1&order_by=hot']   #print(start_urls)
  def parse(self, response):       '''解析外面页面'''       selector = Selector(response)       partical_urls = selector.re('<div class="count"><a target="_blank" href="(.*?)">', selector)       for url in partical_urls:           print(url)           right_url = response.urljoin(url)           #print(right_url)           parts = ['?order_by=added_at&page={0}'.format(k) for k in range(1, 11)]           for part in parts:               # 要爬取每个专题的前10个文章的信息               real_url = right_url + part               #print(real_url)               yield scrapy.Request(real_url, callback=self.parse_detail)
      links = ['https://www.jianshu.com/recommendations/collections?page={}&order_by=hot'.format(i) for i in                range(2, 3)]       for link in links:           print(link)           request = scrapy.Request(link, callback=self.parse)           yield request
  def parse_detail(self, response):       selector = Selector(response)       content = selector.xpath('//div[@class="content"]')       for detail in content:           try:               title = detail.xpath('a[1]/text()').extract_first()               summary = detail.xpath('p/text()').extract_first().strip()               author = detail.xpath('div/a[1]/text()').extract_first()               # comments = detail.xpath('div/a[2]/text()').extract_first()这样是不行的               comments = detail.xpath('div/a[2]/text()').extract()[1].strip()               likes = detail.xpath('div/span[1]/text()').extract_first().strip()               money = detail.xpath('div/span[2]/text()').extract_first()
              item = ZhuantiNewItem()               if money is not None:                   item['title'] = title                   item['summary'] = summary                   item['author'] = author                   item['comments'] = comments                   item['likes'] = likes                   item['money'] = money.strip()               else:                   item['title'] = title                   item['summary'] = summary                   item['author'] = author                   item['comments'] = comments                   item['likes'] = likes               print(item)               yield item           except:               pass

以上就是最主要的几个文件,对于初学者只要按照对应要求完成这几个文件的代码填写就可以爬取到数据。

3、案例运行及结果

现在开始运行整体代码,就需要创建上述的main文件了,具体main文件代码如下:

Python Scrapy爬虫框架如何使用

运行的爬虫文件为:zhuantispider,务必不要写成Scrapy项目名称

爬取运行结果如下:

Python Scrapy爬虫框架如何使用

“Python Scrapy爬虫框架如何使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI