ZHANG_2022年网络我的网络爬虫学习心得
一、我的学习心得
网络爬虫是一种自动获取网页内容的程序,是搜索引擎的重要组成部分。学爬虫是循序渐进的过程,作为零基础小白,大体上可分为三个阶段,第一阶段是入门,掌握必备的基础知识,第二阶段是模仿,跟着别人的爬虫代码学,弄懂每一行代码,第三阶段是自己动手,这个阶段你开始有自己的解题思路了,可以独立设计爬虫系统。爬虫涉及的技术包括但不限于熟练一门编程语言,正则表达式、数据库知识,常用抓包工具的使用、爬虫框架的使用、涉及到大规模爬虫,还需要了解分布式的概念、消息队列、常用的数据结构和算法、缓存,甚至还包括机器学习的应用,大规模的系统背后都是靠很多技术来支撑的。爬虫只是为了获取数据,分析、挖掘这些数据才是价值,因此它还可以延伸到数据分析、数据挖掘等领域,给企业做决策,所以作为一名爬虫工程师,是大有可为的。
二、Python编程基础中爬虫应用都会用到pip模块以及对应的功能。
pandas
: pandas是一个强大的Python数据分析的工具包,它是基于Numpy构建的
pyquery
: pyquery库是一个非常强大又灵活的网页解析库。
pymysql模块
: pymysql是在Python3.x版本中用于连接mysql服务器的一个库。
bs4
: BeautifulSoup简称: bs4 。BeautifulSoup,和lxml一样,是一个html的解析器,主要功能也是解析和提取数据,通俗的讲bs4库把html源代码重新进行了格式化,从而方便我们对其中的节点、标签、属性等进行操作。
sqlalchemy
: sqlalchemy是一个python语言实现的的针对关系型数据库的orm库。可用于连接大多数常见的数据库,比如Postges、MySQL、SQLite、Oracle等。
gerapy_auto_extractor
: gerapy_auto_extractor是一种不使用XPath或选择器提取列表、标题、内容、日期等信息的提取器,使用这个包来区分列表页和详细信息页,我们可以使用它来提取url从列表页中提取{},datetime,content而不使用任何XPath或选择器。
对于中文新闻网站来说,它比其他场景更有效。对于detail页面,可以使用extract_title方法提取标题,使用extract_content方法提取内容, 使用extract_datetime方法提取日期时间。
gerapy
: Gerapy 是一款分布式爬虫管理框架,有了它我们可以,更方便地控制爬虫运行,更直观地查看爬虫状态,更实时地查看爬取结果,更简单地实现项目部署,更统一地实现主机管理
scrapy
: Scrapy 是用 Python 实现的一个为了爬取网站数据、提取结构性数据而编写的应用框架。
三、实验一_网页爬取之存储到Mysql与Mongodb
实验过程与代码:
# 导入各种库
import requests
from bs4 import BeautifulSoup
import pandas as pd
from urllib import parse
from sqlalchemy import create_engine
import pymysql
import pymongo
import jso