资讯专栏INFORMATION COLUMN

【python爬虫学习 】python3.7 scrapy 安装,demo实例,实践:爬取百度

asoren / 3466人阅读

摘要:安装可能的问题问题解决实例教程中文教程文档第一步创建项目目录第二步进入创建爬虫第三步创建存储容器,复制项目下的重命名为第四步修改提取数据引入数据容器第五步解决百度首页网站抓取空白问题设置设置用户代理解决相关解决数据保存乱

pip 安装 pip install scrapy

可能的问题:
问题/解决:error: Microsoft Visual C++ 14.0 is required.

实例demo教程 中文教程文档
第一步:创建项目目录

scrapy startproject tutorial

第二步:进入tutorial创建spider爬虫

scrapy genspider baidu www.baidu.com

第三步:创建存储容器,复制项目下的items.py重命名为BaiduItems

# -*- coding: utf-8 -*-

# Define here the models for your scraped items
#
# See documentation in:
# https://doc.scrapy.org/en/latest/topics/items.html

import scrapy

class BaiduItems(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    title = scrapy.Field()
    link = scrapy.Field()
    desc = scrapy.Field()
    pass

第四步:修改spiders/baidu.py xpath提取数据

# -*- coding: utf-8 -*-
import scrapy
# 引入数据容器
from tutorial.BaiduItems import BaiduItems

class BaiduSpider(scrapy.Spider):
    name = "baidu"
    allowed_domains = ["www.readingbar.net"]
    start_urls = ["http://www.readingbar.net/"]
    def parse(self, response):
        for sel in response.xpath("//ul/li"):
            item = BaiduItems()
            item["title"] = sel.xpath("a/text()").extract()
            item["link"] = sel.xpath("a/@href").extract()
            item["desc"] = sel.xpath("text()").extract()
            yield item
        pass

第五步:解决百度首页网站抓取空白问题,设置setting.py

# 设置用户代理
USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36"

# 解决 robots.txt 相关debug
ROBOTSTXT_OBEY = False
# scrapy 解决数据保存乱码问题
FEED_EXPORT_ENCODING = "utf-8"

最后一步:开始爬取数据命令并保存数据为指定的文件
执行的时候可能报错:No module named "win32api" 可以下载指定版本安装

scrapy crawl baidu -o baidu.json

深度爬取百度首页及导航菜单相关页内容

# -*- coding: utf-8 -*-
import scrapy

from scrapyProject.BaiduItems import BaiduItems

class BaiduSpider(scrapy.Spider):
    name = "baidu"
    # 由于tab包含其他域名,需要添加域名否则无法爬取
    allowed_domains = [
        "www.baidu.com",
        "v.baidu.com",
        "map.baidu.com",
        "news.baidu.com",
        "tieba.baidu.com",
        "xueshu.baidu.com"
    ]
    start_urls = ["https://www.baidu.com/"]
    def parse(self, response):
        item = BaiduItems()
        item["title"] = response.xpath("//title/text()").extract()
        yield item
        for sel in response.xpath("//a[@class="mnav"]"):
            item = BaiduItems()
            item["nav"] = sel.xpath("text()").extract()
            item["href"] = sel.xpath("@href").extract()
            yield item
            # 根据提取的nav地址建立新的请求并执行回调函数
            yield scrapy.Request(item["href"][0],callback=self.parse_newpage)
        pass
    # 深度提取tab网页标题信息
    def parse_newpage(self, response):
        item = BaiduItems()
        item["title"] = response.xpath("//title/text()").extract()
        yield item
        pass

绕过登录进行爬取
a.解决图片验证 pytesseract

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42720.html

相关文章

  • Python3网络爬虫实战---10、爬虫框架的安装:PySpider、Scrapy

    摘要:所以如果对爬虫有一定基础,上手框架是一种好的选择。缺少包,使用安装即可缺少包,使用安装即可上一篇文章网络爬虫实战爬取相关库的安装的安装下一篇文章网络爬虫实战爬虫框架的安装 上一篇文章:Python3网络爬虫实战---9、APP爬取相关库的安装:Appium的安装下一篇文章:Python3网络爬虫实战---11、爬虫框架的安装:ScrapySplash、ScrapyRedis 我们直接...

    张宪坤 评论0 收藏0
  • 首次公开,整理12年积累的博客收藏夹,零距离展示《收藏夹吃灰》系列博客

    摘要:时间永远都过得那么快,一晃从年注册,到现在已经过去了年那些被我藏在收藏夹吃灰的文章,已经太多了,是时候把他们整理一下了。那是因为收藏夹太乱,橡皮擦给设置私密了,不收拾不好看呀。 ...

    Harriet666 评论0 收藏0
  • 零基础如何学爬虫技术

    摘要:楚江数据是专业的互联网数据技术服务,现整理出零基础如何学爬虫技术以供学习,。本文来源知乎作者路人甲链接楚江数据提供网站数据采集和爬虫软件定制开发服务,服务范围涵盖社交网络电子商务分类信息学术研究等。 楚江数据是专业的互联网数据技术服务,现整理出零基础如何学爬虫技术以供学习,http://www.chujiangdata.com。 第一:Python爬虫学习系列教程(来源于某博主:htt...

    KunMinX 评论0 收藏0
  • python爬虫入门(一)

    摘要:想办法区分爬虫程序和正常的用户。爬虫是工具性程序,对速度和效率要求较高。生态圈完善,是最大对手。最要命的是爬虫需要经常修改部分代码。爬虫分类通用爬虫也就是百度搜狐等搜索引擎。原本是为测试来测试网站的,后来成了爬虫工程师最喜爱的工具。 一、爬虫的基本知识: 1. 什么是爬虫 爬虫的英文翻译为spider或者crawder,意为蜘蛛或者爬行者,从字面意思我们可以体会到:爬虫就是把自己当做蜘...

    lentrue 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<