前段时间将python的基础写在了头条号里面,最近一段时间在研究前端知识和laravel框架,把python的代码放了,今天不忙写了一个简单的爬虫。下面是代码(基于3.7版本):

python实现简单爬虫

Python

-- 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()