python-简单的网页爬虫、环境搭建、MYSQL数据库操作

简单的网页爬虫

一 、网络爬虫简述

1.1 - 什么是网络爬虫:

爬虫’技术是实现网页信息采集的关键技术之一,通俗来说,‘爬虫’就是一段用来批量、自动化采集网站数据的程序,几乎不需要人工干预。”
“爬虫”又称网页“蜘蛛”、网络机器人,它是一种按照一定规则自动抓取网页信息的程序或者脚本,通常驻留在服务器上。在Web网页中,既包含可供用户阅读的文字、图片等信息,还包含一些超链接信息。网络“爬虫”正是借助这些超链接信息来不断抓取网络上的其他网页
这种信息采集过程很像一个爬虫或蜘蛛在网络上漫游,网络‘爬虫’或网页‘蜘蛛’因此得名。

1.2 - 爬虫工作流程

1、选取URL

  • 将URL对应的网页下载下来。 url是是互联网上标准资源的地址

2、解析URL

  • 用Beautiful Soup 解析器,解析网页,生成剖析树(parse tree)

3、抓取内容

  • 根据剖析树(parse tree)抓取想要的内容

4、存储内容

  • 把抓取到的数据存储到文件和数据库

1.3 - 浏览器工作原理

二、环境准备

2.1-Python环境搭建

  • 去Python官网 https://www.python.org/ 下载系统对应的版本 ,推荐安装Python 3 以上的版本,我这里用的是Python 3.7 版本的

  • 自动帮我们添加的环境变量

  • 测试是否安装成功?打开命令符窗口,输入python 出现如下界面

2.2 - 开发工具Pycharm安装

PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具安装成功后根据资料破解

可以去Pycharm https://www.jetbrains.com/pycharm/ 下载 Pycharm,我这里安装的是 Pycharm 2019的版本

安装时网上随便找一段激活码,就可以破解啦。

如果觉得 英文 看得不舒服 可以 加入pycharm 的汉化包
参考文章 : https://blog.csdn.net/jia666666/article/details/81777017
这样就有中文界面啦。
:导入中文包可能会导致设置功能不可用,解决方案见以上网址

2.3 - Pycharm 上配置Python 解释器

  • 右下角选择添加解释器

在这里插入图片描述

  • 添加已存在的解释器,解释器选择之前环境变量下的 python3.exe解释器

在这里插入图片描述

2.4 - 下载网页爬虫所需的模块

命令符下执行以下语句,导入requests模块和bs4模块

pip3 install requests
pip3 install bs4

在这里插入图片描述
在这里插入图片描述
下载完就可以在Lib\site-packages目录看到啦
在这里插入图片描述

2.5 - 在pycharm上导入requests模块和bs4模块

file ->setting

在这里插入图片描述

三、网页爬虫示例

3.1 - 创建工程

3.2 - 示例代码


import urllib
import requests
from bs4 import BeautifulSoup


#打开文件
f = open("file.txt", 'w', encoding='utf-8')
#reponse = urllib.request.urlopen("http://www.quanshuwang.com/book/44/44683").read()
#reponse = reponse.decode("gbk")
#获取网页信息
reponse = requests.get("http://www.quanshuwang.com/book/44/44683")
#解码
reponse.encoding='gbk'
#解析网页
soup = BeautifulSoup(reponse.text,'html.parser')
print(soup)

book_names = soup.select(".dirconone li a")
print(book_names)

for book_name in book_names:
    print(book_name)
    chart_url = "链接地址:" + str(book_name['href'])+"\n"
    chart_name="章节名:"+str(book_name['title'])+"\n"
    data=chart_url+chart_name
    print(data)
    # 保存数据
    f.writelines(data + '=======================' + '\n')

#关闭文件
f.close()

3.3 - 运行及结果


四、将爬虫的数据上传到MYSQL数据库

4.1- MYSQL下载及安装

参考以下文章:
https://jingyan.baidu.com/article/eb9f7b6da17ccc869364e8d9.html?qq-pf-to=pcqq.c2c
https://jingyan.baidu.com/article/fd8044fa10550d5031137adf.html

4.2 - Python连接MYSQL数据

参考来源:https://www.cnblogs.com/woider/p/5926744.html

由于 MySQLdb 模块还不支持 Python3.x,所以 Python3.x 如果想连接MySQL需要安装 pymysql模块。
pymysql 模块可以通过 pip 安装。但如果你使用的是 pycharm IDE,则可以使用 project python 安装第三方模块。

[File] >> [settings] >> [Project: python] >> [Project Interpreter] >> [Install按钮]

由于Python统一了数据库连接的接口,所以 pymysql 和 MySQLdb 在使用方式上是类似的:

pymysql.Connect()参数说明
host(str):      MySQL服务器地址
port(int):      MySQL服务器端口号
user(str):      用户名
passwd(str):    密码
db(str):        数据库名称
charset(str):   连接编码

connection对象支持的方法
cursor()        使用该连接创建并返回游标
commit()        提交当前事务
rollback()      回滚当前事务
close()         关闭连接

cursor对象支持的方法
execute(op)     执行一个数据库的查询命令
fetchone()      取得结果集的下一行
fetchmany(size) 获取结果集的下几行
fetchall()      获取结果集中的所有行
rowcount()      返回数据条数或影响行数
close()         关闭游标对象

代码示例:(把爬虫的数据存储到数据库)


import requests
from bs4 import BeautifulSoup
import pymysql

# 打开数据库连接
db = pymysql.connect("localhost", "root", "990124", "mydb", charset='utf8' )
# 使用cursor()方法获取操作游标
cursor = db.cursor()

# 如果数据表已经存在使用 execute() 方法删除表。
cursor.execute("DROP TABLE IF EXISTS CHART")
sql = """CREATE TABLE CHART (
         CHART_ID INT auto_increment Primary key ,
         CHART_URL  CHAR(100) NOT NULL,
         CHART_NAME  CHAR(100)
          )"""
#执行SQL语句
cursor.execute(sql)

#请求url
respone=requests.get("http://www.quanshuwang.com/book/133/133940")
respone.encoding='gbk'
print(respone)

#解析
soup=BeautifulSoup(respone.text,"html.parser")
# print(soup)
charts=soup.select(".dirconone li a")
print(charts)
f=open('file.txt','w',encoding='utf-8')
for chart in charts:
    chart_url="url:"+str(chart['href'])+"\n"
    chart_name="章节名:"+str(chart['title'])+"\n"
    # print(chart)
    # print(chart_url)
    f.writelines(chart_url+chart_name+"-----\n")
    sql = 'INSERT INTO CHART(CHART_URL,CHART_NAME)VALUES("%s","%s")' % \
          (chart_url, chart_name)
    try:
        # 执行sql语句
        cursor.execute(sql)
        # 提交到数据库执行
        db.commit()
    except:
        # Rollback in case there is any error
        db.rollback()
f.close()
# 关闭数据库连接
db.close()

运行结果:
在这里插入图片描述

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python是一种强大的编程语言,其应用领域广泛,包括了数据处理、数据挖掘和爬虫等方面。在这其中,Python爬虫技术已经成为数据获取和处理的重要建设板块。同时,数据库是存储和管理数据的基本方式,其由于高效、安全和稳定等特性而被广泛应用在各个领域中。 在Python的Web框架中,Flask是一种极为流行的工具,其为开发Web应用提供了很多便利,尤其适合小型和中型的Web应用开发。在Flask框架中,开发者可以使用Python编写各种功能,如路由、拦截器、数据验证、数据渲染等等。 在就业系统的建设过程中,Python和Flask可以负责Web应用的开发。爬虫技术则可以用于从多个网站获取招聘信息,并将其存储在数据库中,包括职位、公司、薪资、职位要求等信息。数据库技术则可以用于数据的管理和访问,包括SQL Server、MySQL、PostgreSQL等多种方式。 总而言之,Python、Flask、爬虫数据库技术可以结合起来,为企业提供高效、准确和可靠的招聘数据,提高招聘质量和效率。 ### 回答2: Python是一门非常流行的编程语言,被广泛应用于爬虫、数据处理、Web开发等领域。在Web开发方面,Flask是一种轻量级的Web应用框架,易于上手,同时也有很好的扩展性和灵活性。 爬虫是将互联网上的数据爬取下来,并进行处理和分析的过程。Python中有很多爬虫框架,比如Scrapy、Beautiful Soup等。而在爬取数据后,需要对其进行存储和管理,这时数据库就成了必不可少的一环。Python中常用的数据库MySQL、SQLite、PostgreSQL等。 在就业系统中,我们可以利用爬虫来获取各种招聘信息,并将其储存在数据库中,方便后续查询和管理。Flask则可以搭建一个基于Web的简单就业系统,可以实现用户注册、登录、简历管理、招聘信息查看等功能。 总的来说,Python、Flask、爬虫数据库在就业系统中的应用,提高了数据的收集和管理效率,同时也提供了更加丰富、便捷的招聘信息查询和管理方式,帮助求职者和企业更好地完成匹配和招聘。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值