前段時間將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()