18.网络爬虫—Scrapy实战演示

这篇具有很好参考价值的文章主要介绍了18.网络爬虫—Scrapy实战演示。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言
🏘️🏘️个人简介:以山河作礼。
🎖️🎖️:Python领域新星创作者,CSDN实力新星认证
📝​📝第一篇文章《1.认识网络爬虫》获得全站热榜第一,python领域热榜第一
🧾 🧾第四篇文章《4.网络爬虫—Post请求(实战演示)》全站热榜第八
🧾 🧾第八篇文章《8.网络爬虫—正则表达式RE实战》全站热榜第十二
🧾 🧾第十篇文章《10.网络爬虫—MongoDB详讲与实战》全站热榜第八,领域热榜第二
🧾 🧾第十三篇文章《13.网络爬虫—多进程详讲(实战演示)》全站热榜第十二
🧾 🧾第十四篇文章《14.网络爬虫—selenium详讲》测试领域热榜第二十
🧾 🧾第十六篇文章《网络爬虫—字体反爬(实战演示)》全站热榜第二十五
🎁🎁《Python网络爬虫》专栏累计发表十七篇文章,上榜七篇。欢迎免费订阅!欢迎大家一起学习,一起成长!!
💕💕悲索之人烈焰加身,堕落者不可饶恕。永恒燃烧的羽翼,带我脱离凡间的沉沦。


Scrapy Shell简介

🧾 🧾Scrapy是一个开源的Python框架,用于快速、高效地爬取网站数据。Scrapy提供了一组功能强大的工具和组件,使开发人员可以轻松地从网站上提取所需的数据。

🧾 🧾Scrapy Shell是一个命令行工具,可以让开发人员交互式地调试和探索网站。使用Scrapy Shell,开发人员可以轻松地测试Web爬虫并查看网站上的数据。

🧾 以下是Scrapy Shell的一些主要特点:

  1. 轻松进入交互式Shell只需输入“scrapy shell”命令即可进入交互式Shell。

  2. 可以直接访问网站并查看HTML源代码使用Scrapy Shell,您可以直接访问网站并查看其HTML源代码。这使您可以轻松地查找要提取的数据的位置。

  3. 支持XPath选择器和CSS选择器在Scrapy Shell中,您可以使用XPath或CSS选择器快速选择和提取所需的数据。

  4. 可以在Scrapy Shell中测试爬虫使用Scrapy Shell,您可以测试和调试Web爬虫,以确保其能够正确提取所需的数据。

  5. 支持调用各种Python函数和库在Scrapy Shell中,您可以轻松调用各种Python函数和库,以进一步处理所提取的数据。

Scrapy Shell是一个非常强大的工具,可以帮助开发人员快速而方便地开发和调试Web爬虫,提取所需的数据

进入shell调试网站

启动Scrapy Shell

🧾 🧾打开命令行终端,并进入一个Scrapy项目根目录,输入以下命令启动Scrapy Shell:

scrapy shell url

🎯这里以百度为例:

scrapy shell https://www.baidu.com/?tn=02003390_84_hao_pg&



🎯运行结果:
18.网络爬虫—Scrapy实战演示

查看目标网站

🧾 🧾使用Scrapy Shell可以查看目标网站的内容,具体步骤如下:

  1. 打开命令行终端,在命令行中键入以下命令开始进入Scrapy Shell:
scrapy shell <url>   其中,`<url>`是目标网站的网址。
  1. 等待一段时间,直到Scrapy Shell加载完毕,显示下面的信息:
In [1]:
  1. 在Scrapy Shell中输入以下命令,获取目标网站的内容:
response.body
  1. 输入以下命令可以查看HTTP头信息:
response.headers
  1. 输入以下命令可以查看目标网页的标题:
response.xpath('//title/text()').get()
  1. 如需退出Scrapy Shell,请输入以下命令:
exit()
view(response)

18.网络爬虫—Scrapy实战演示

获取网站源代码

response.body

18.网络爬虫—Scrapy实战演示

常用方法

🧾 🧾输入response. 在这个时候按下键盘上的Tab键就可以实现参数选择

response.url  # 当前响应的url地址

response.request.url  # 当前响应对应的请求的url地址

response.text  # html字符串,str类型

response.body  # 广义上二进制的响应,bytes类型,相当于是response.content

response.body.decode()  # 对bytes类型的字符串进行解码,将其变为str类型,相当于是response.content.decode()

response.xpath()  # 调试我们的xpath表达式写地是否正确
response.xpath('//ul[@class="clears"]/li/div[@class="main_mask"]/h2[1]/text()').extract()

response.headers  # 响应头

response.request.headers  # 当前响应的请求头

调试xpath

🎯先将文本打印出来

response.text

18.网络爬虫—Scrapy实战演示

response.xpath('/html/head/title/text()')

18.网络爬虫—Scrapy实战演示

提取数据

 response.xpath('/html/head/title/text()').extract()

18.网络爬虫—Scrapy实战演示

Scrapy请求子页面

请求及返回处理

创建项目

scrapy startproject douban_movie

18.网络爬虫—Scrapy实战演示

创建爬虫

🎯进入到spiders文件下创建创建爬虫文件

cd douban_movie\douban_movie\spiders

创建爬虫
🎯命令[scrapy genspider 爬虫的名称 爬虫网站]

scrapy genspider movie movie.douban.com

创建成功
18.网络爬虫—Scrapy实战演示
18.网络爬虫—Scrapy实战演示

数据解析

title = response.xpath('normalize-space(string(//div[@id="content"]/h1))').extract()
        info = response.xpath('normalize-space(string(//div[@id="info"]))').extract()
import scrapy


class MovieSpider(scrapy.Spider):
    name = "movie"
    allowed_domains = ["movie.douban.com"]
    start_urls = [
        f'https://movie.douban.com/j/chart/top_list?type=24&interval_id=100%3A90&action=&start={i}&limit=20'
        for i in range(0, 100)]

    def parse(self, response, *_):
        urls = [i['url']for i in response.json()]
        yield from response.follow_all(urls=urls, callback=self.parse_t)


    def parse_t(self,response,*_):
        title = response.xpath('normalize-space(string(//div[@id="content"]/h1))').extract()
        info = response.xpath('normalize-space(string(//div[@id="info"]))').extract()
        print(title)
        # yield {
        #     'title': title,
        #     'info': info
        # }
        zip(title, info)
        for i in zip(title, info):
            print(i[0], i[1])
            yield {
                'title': title,
                'info': info
            }


18.网络爬虫—Scrapy实战演示

写入csv文件

# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html


# useful for handling different item types with a single interface
from itemadapter import ItemAdapter
import csv


class DoubanMoviePipeline:
    def __init__(self):
        self.f = open('电影.csv', 'w+', encoding='utf', newline='')
        self.csv_f = csv.writer(self.f)
        self.csv_f.writerow(['标题', '简介'])

    def process_item(self, item, spider):
        self.csv_f.writerow([item['title'], item['info']])
        return item

    def close_spider(self):
        self.f.close()
        print("信息写入完成!")

18.网络爬虫—Scrapy实战演示

后记

👉👉本专栏所有文章是博主学习笔记,仅供学习使用,爬虫只是一种技术,希望学习过的人能正确使用它。
博主也会定时一周三更爬虫相关技术更大家系统学习,如有问题,可以私信我,没有回,那我可能在上课或者睡觉,写作不易,感谢大家的支持!!🌹🌹🌹
文章来源地址https://www.toymoban.com/news/detail-421464.html

到了这里,关于18.网络爬虫—Scrapy实战演示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 12.网络爬虫—线程队列详讲(实战演示)

    前言 : 🏘️🏘️个人简介:以山河作礼。 🎖️🎖️:Python领域新星创作者,CSDN实力新星认证 📝​📝第一篇文章《1.认识网络爬虫》获得 全站热榜第一,python领域热榜第一 。 🧾 🧾第四篇文章《4.网络爬虫—Post请求(实战演示)》 全站热榜第八 。 🧾 🧾第八篇文章《8.网

    2023年04月18日
    浏览(30)
  • 爬虫---scrapy爬虫框架(详细+实战)

    ​ 活动地址:CSDN21天学习挑战赛 1、基本功能 Scrapy 是一个适用爬取网站数据、提取结构性数据的应用程序框架,它可以应用在广泛领域:Scrapy 常应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。通常我们可以很简单的通过 Scrapy 框架实现一个爬虫,抓取指

    2023年04月22日
    浏览(38)
  • Python爬虫之Scrapy框架系列(23)——分布式爬虫scrapy_redis浅实战【XXTop250部分爬取】

    先用单独一个项目来使用scrapy_redis,讲解一些重要点!

    2024年02月16日
    浏览(36)
  • python爬虫实战 scrapy+selenium爬取动态网页

    最近学习了scrapy爬虫框架,想要找个目标练练手。由于现在很多网页都是动态的,因此还需要配合selenium爬取。本文旨在记录这次学习经历,如有疑问或不当之处,可以在评论区指出,一起学习。 对scrapy不了解的同学可以阅读这篇文章 爬虫框架 Scrapy 详解,对scrapy框架介绍的

    2024年02月07日
    浏览(62)
  • 【深入Scrapy实战】从登录到数据解析构建完整爬虫流程

    【作者主页】: 吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐】:对JS逆向感兴趣的朋友可以关注《爬虫JS逆向实战》,对分布式爬虫平台感兴趣的朋友可以关注《分布式爬虫平台搭建

    2024年02月04日
    浏览(36)
  • 网络爬虫(Python:Selenium、Scrapy框架;爬虫与反爬虫笔记)

    Selenium是一个模拟浏览器浏览网页的工具,主要用于测试网站的自动化测试工具。 Selenium需要安装浏览器驱动,才能调用浏览器进行自动爬取或自动化测试,常见的包括Chrome、Firefox、IE、PhantomJS等浏览器。 注意:驱动下载解压后,置于Python的安装目录下;然后将Python的安装目

    2024年01月18日
    浏览(46)
  • 20.网络爬虫—Scrapy-Redis分布式爬虫

    前言 : 🏘️🏘️个人简介:以山河作礼。 🎖️🎖️: Python领域新星创作者,CSDN实力新星认证 📝​📝第一篇文章《1.认识网络爬虫》获得 全站热榜第一,python领域热榜第一 。 🧾 🧾第四篇文章《4.网络爬虫—Post请求(实战演示)》 全站热榜第八 。 🧾 🧾第八篇文章《8

    2024年02月02日
    浏览(64)
  • Scrapy:Python中强大的网络爬虫框架

    在当今信息爆炸的时代,从互联网上获取数据已经成为许多应用程序的核心需求。Scrapy是一款基于Python的强大网络爬虫框架,它提供了一种灵活且高效的方式来提取、处理和存储互联网上的数据。本文将介绍Scrapy的主要特性和优势,以及如何使用它来构建强大的网络爬虫。

    2024年02月19日
    浏览(41)
  • 网络爬虫丨基于scrapy+mysql爬取博客信息

    本期内容 :基于scrapy+mysql爬取博客信息并保存到数据库中 实验需求 anaconda丨pycharm python3.11.4 scrapy mysql 项目下载地址:https://download.csdn.net/download/m0_68111267/88740730 本次实验实现了:使用Scrapy框架爬取博客专栏的目录信息并保存到MySQL数据库中,实验主要涉及到Python的爬虫技术以

    2024年03月18日
    浏览(42)
  • 【100天精通python】Day45:python网络爬虫开发_ Scrapy 爬虫框架

    目录 1 Scrapy 的简介 2 Scrapy选择器 3 快速创建Scrapy 爬虫 4 下载器与爬虫中间件

    2024年02月11日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包