2022年网络我的网络爬虫心得
本文主要记录我学习python并成功爬取诗词吾爱(首页 - 诗词吾爱网 www.52shici.com)数据,在这个过程中尝试爬过周到上海、国际在线都没有成功,前路漫漫。
在这学期的课程中也学会了使用很多工具,Anaconda、Pycharm、Mysql等等。python的功能很多,爬虫只是一小部分,学习进步空间还有很大。
1. 不要急于求成,编程虽然不难,但也没有那么简单,不要想着速成,特别是对于计算机基础不是很好的人。
2. 学习的过程中可能会遇到很多困,或许会有很多没有接触的东西,善用google,一个个问题地解决,缺什么补什么。
3. 对于初学者来讲,最重要的不是去学各种吊炸天的框架,追最新的技术。技术,框架是学不完的,永远都会层出不穷,最重要的是把基础学好。很多时候你有一个问题解决不了,都是你某些方面的知识缺了。慢慢来,不要急,随着学习的深入,再回过头来看以前的问题,会有豁然开朗的感觉。
4. 一定要动手做,找点成就感,对你继续做下去有很大的促进作用。不然的话,遇到点困难很容易就放弃了。
5.坚持。
requests
requests库是一个简洁的能够简单地处理HTTP请求的第三方库,requests库特点:简单、简洁,是python的第三方库,也是网络爬虫常用的库。
BS4
BS4全称是Beatiful Soup,它提供⼀些简单的、python式的函数⽤来处理导航、搜索、修改分析树等功能。法:pip install requests。
pandas
pandas 是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
Selenium
Selenium是一个基于浏览器的自动化工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。其他测试工具都不能覆盖如此多的平台。使用 Selenium 和在浏览器中运行测试还有很多其他好处。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。
Scrapy
Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。
gerapy_auto_extractor
Gerapy 是一款分布式爬虫管理框架,支持 Python 3,基于 Scrapy、Scrapyd、Scrapyd-Client、Scrapy-Redis、Scrapyd-API、Scrapy-Splash、Jinjia2、Django、Vue.js 开发,Gerapy 可以帮助我们:更方便地控制爬虫运行,更直观地查看爬虫状态,更实时地查看爬取结果,更简单地实现项目部署,更统一地实现主机管理。
一、简单爬虫实现
打开WIN+R搜索cmd,输入如下代码。
结果:
二、Scrapy爬虫框架的使用
实验内容:用Scrapy爬虫框架抓取指定网页的内容,并将数据存入MongoDB数据库。
创建Scrapy项目
下载安装Scrapy环境
代码如下:
pip install scrapy==2.6.1
使用组合键Win+R并输入cmd打开终端,并在终端中输入代码
建立爬虫项目
首先进入我们创建爬虫项目的文件夹,点击右键进入Power Shell终端,使用如下代码创建新项目
代码如下
scrapy startproject poem
配置Scrapy框架
使用的软件是pycharm
items.py的配置
# -*- coding: utf-8 -*-
# Define here the models for your scraped items
#
# See documentation in:
# https://docs.scrapy.org/en/latest/topics/items.html
import scrapy
class PoemdataItem(scrapy.Item):
# define the fields for your item here like:
# name = scrapy.Field()
title = scrapy.Field()#标题
url = scrapy.Field()#网址
date = scrapy.Field()#日期
content = scrapy.Field()#文章正文
site = scrapy.Field()#站点
item = scrapy.Field()#栏目
student_id = scrapy.Field()#学号
middlewares.py的配置
# -*- coding: utf-8 -*-
# Define here the models for your spider middleware
#
# See documentation in:
# https://docs.scrapy.org/en/latest/topics/spider-middleware.html
from scrapy import signals
# useful for handling different item types with a single interface
from itemadapter import is_item, ItemAdapter
class PoemdataSpiderMiddleware:
# Not all methods need to be defined. If a method is not defined,
# scrapy acts as if the spider middleware does