Python Scrapy爬虫框架实战应用

本文通过创建Python Scrapy爬虫项目,演示了如何抓取网页数据,包括创建Scrapy项目、编写爬虫文件、设置配置、使用PyCharm运行以及存储数据到MySQL数据库。实例中详细解释了猫眼电影Top100榜的爬取过程,展示了Scrapy框架的高效性和便利性。
摘要由CSDN通过智能技术生成

通过上一节《Python Scrapy爬虫框架详解》的学习,您已经对 Scrapy 框架有了一个初步的认识,比如它的组件构成,配置文件,以及工作流程。本节将通过一个的简单爬虫项目对 Scrapy 框架做进一步介绍。

首先看一个简单的示例,比如把 python教程入门学习公众号首页的“title”抓取下来,如下所示:

<html lang="zh-cn">
<head>
<meta charset="gb2312" />
<meta name="baidu-site-verification" content="6B13HRSfYA" />
<link rel="shortcut icon" href="/cpp/favicon.ico" />
<title>python教程入门学习:python教程入门学习公众号(入门教程、编程软件)</title>
....
</head>

创建项目
在 CMD 命令行执行以下命令创建项目以及爬虫文件:

# 创建项目
1) scrapy startproject Title
# 进入项目
2) cd Title
# 创建爬虫文件

3)scrapy genspider title c.biancheng.net
编写代码
打开爬虫文件 title.py ,编写如下代码,其中一些代码 Scrapy 框架已经自动生成:

  1. 编写爬虫文件
import scrapy
class TitleSpider(scrapy.Spider):
    name = 'title'
    #要抓取数据的网站域名
    allowed_domains = ['c.biancheng.net']
    #第一个抓取的url,初始url,被当做队列来处理
    start_urls = ['http://c.biancheng.net/']
    
    def parse(self,response):
        #.extract():提取文本内容,将列表中所有元素序列化为Unicode字符串
        #.extract_first():提取列表中第1个文本内容
        # 以下是我们自己编写的代码,而自动生成的代码不用改动
        result = response.xpath('/html/head/title/text()').extract_first()
        print('-' * 60 )
        print(result)
        print('-' * 60)
  1. 修改配置文件
    下面修改 settings 文件的配置项,如下所示:
USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1'
ROBOTSTXT_OBEY = False
DEFAULT_REQUEST_HEADERS = {
   
  'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  'Accept-Language': 'en',
}
  1. 使用Pycharm IDE运行项目
    为了省去终端敲命令的环节,您可以在项目中自定义一个运行文件 mian.py(注意:该文件与 scrapy.cfg 同目录),并编写如下代码:
from scrapy import cmdline
# 注意,cmdline.execute()是为了减少输入命令的操作,该方法的参数必须为列表。
# 执行爬虫文件来启动项目
cmdline.execute('scrapy crawl title'.split())
编写完成后,执行 main.py 文件,您会看到很多的输出内容,内容大致如下:
# scrapy 框架运行时输出的日志&
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值