前段时间将python的基础写在了头条号里面,最近一段时间在研究前端知识和laravel框架,把python的代码放了,今天不忙写了一个简单的爬虫。下面是代码(基于3.7版本):
# -*- coding: UTF-8 -*-
import requests
from bs4 import BeautifulSoup
import pymysql
# 初始化方法
def start_method():
get_url = set_path()
print(get_url)
# 基础信息设置,拼合 url
def set_path():
# 基础url链接
base_url = 'http://dl.sll.cn/major/'
# 定义链接组
url_array = []
# 设置起始点
start_num = 1
# 设置终点
end_num = 10000
# 循环生成url链接
for i in range(start_num, end_num):
# 拼接完整url
url = base_url + str(i) + '.html'
url_array.append(url)
return url_array
# print(url_array)
# 获取 html
# 获取内容并写入库
def start():
# 获取拼合后的url链接
url_array = set_path()
for url in url_array:
# 获取链接的信息(状态码、url、头信息、cookie、源码等)
content = requests.get(url)
# 设置编码格式
content.coding = 'UTF-8'
# 以文本形式获取源码
content_text = content.text
# 利用解析器进行解析操作
article = BeautifulSoup(content_text)
# 标题
title = article.title.string
# 写入数据库
mysql_connect(title, url)
# 连接数据库
def mysql_connect(title, url):
con = pymysql.connect(
# 数据库地址
host='127.0.0.1',
# 端口
port=3306,
# 用户名
user='root',
# 密码
password='shenlin',
# 数据库名称
database='school',
# 编码设置
charset='utf8'
)
# 得到连接光标
connect = con.cursor()
# 书写 SQL 语句
sql = 'INSERT INTO test(title, url) VALUES("%s","%s")' % (title, url)
# 执行SQL,并获取结果
res = connect.execute(sql)
# 关闭数据库连接
connect.close()
con.close()
if res:
print(url + '------> 写入成功')
else:
print(url + '------> 写入失败')
# 初始化调用方法
start()