scrapy 入门案例

scrapy 爬虫(糗事百科)第一步

  • 准备工作

  • 爬取以下内容

  • name age content
    在这里插入图片描述

  • 在H:盘创建爬虫项目
    第一步在H盘创建爬虫项目

# 创建爬虫项目 (项目名qiu_bai)
scrapy startproject qiu_bai
  • 会自动生成以下目录及文件
    在这里插入图片描述

第二步 切换到spiders目录下

# 生成爬虫文件
scrapy genspider qiubai www.qiushibaike.com
  • 会在spider目录生成一个 qiubai.py文件
    在这里插入图片描述

第三步 打开 items.py

  • 粘贴以下代码
import scrapy
# 要爬取的字段
class QiuBaiItem(scrapy.Item):
    name = scrapy.Field()
    age = scrapy.Field()
    content = scrapy.Field()

第四步 打开 qiubai.py

  • 复制以下代码
# -*- coding: utf-8 -*-
import re
import scrapy
from qiu_bai.items import QiuBaiItem
class QiubaiSpider(scrapy.Spider):
    name = 'qiubai'
    allowed_domains = ['www.qiushibaike.com']
    start_urls = ['https://www.qiushibaike.com/8hr/page/1/']

    def parse(self, response):
        for each in response.xpath('//div[@id="content-left"]/div'):
            item = QiuBaiItem()
            try:
                name = each.xpath('div/a[2]/h2/text()').extract_first().strip('\n')
            except Exception as e:
                name='匿名用户'
            try:
                age = each.xpath('div[1]/div/text()').extract_first()
            except Exception as e:
                age = '没有年龄'
            content = each.xpath('a[1]/div/span/text()').extract_first().strip('\n')
            for i in item.fields.keys():
                item[i] = eval(i)
            yield item
        s = response.url
        now_page = int(re.search(r'(\d+)/$', s).group(1))
        if now_page < 13:
            url = re.sub(r'(\d+)/$', str(now_page + 1), s)
            print("this is next page url:", url)
            print('*' * 100)
            yield scrapy.Request(url, callback=self.parse)

第五步 打开 pipelines.py (将爬取到的数据保存成json文件)

import json

class QiuBaiPipeline(object):
    def __init__(self):
        self.file = open('qiubai.json', 'wb')

    def process_item(self, item, spider):
        content = json.dumps(dict(item), ensure_ascii=False) + "\n"
        self.file.write(content.encode('utf8'))
        return item

    def close_spider(self, spider):
        self.file.close()

第六步 打开settings.py

  • 复制以下代码
BOT_NAME = 'qiu_bai'

SPIDER_MODULES = ['qiu_bai.spiders']
NEWSPIDER_MODULE = 'qiu_bai.spiders'

USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36'

ROBOTSTXT_OBEY = False

DOWNLOAD_DELAY = 3

ITEM_PIPELINES = {
   'qiu_bai.pipelines.QiuBaiPipeline': 300,
}

第七步

  • 进入spiders目录
# 在终端输入
scrapy crawl qiubai

在这里插入图片描述

  • 输入命令然后单击回车开始爬取需要的信息
    在这里插入图片描述
基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip 个人大四的毕业设计、课程设计、作业、经导师指导并认可通过的高分设计项目,评审平均分达96.5分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 [资源说明] 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设或者课设、作业,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96.5分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),供学习参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_42847500

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值