python爬取資料庫資訊

2022-09-07 19:48:13 字數 1834 閱讀 9607

一、今日學習內容

資料庫儲存爬取的資訊(mysql)

爬取到的資料為了更好地進行分析利用,而之前將爬取得資料存放在txt檔案中後期處理起來會比較麻煩,很不方便,如果資料量比較大的情況下,查詢更加麻煩,所以我們通常會把爬取的資料儲存到資料庫中便於後期分析利用。

這裡,資料庫選擇mysql,採用pymysql 這個第三方庫來處理python和mysql資料庫的訪問,python連線mysql資料庫的配置資訊

db_config ={

'host': '127.0.0.1',

'port': 3306,

'user': 'root',

'password': '',

'db': 'pytest',

'charset': 'utf8'

如上圖,文章題目在a標籤中,且url(href)只含有後半部分,所以在儲存的時候,最好把它補全。

mysql:新建乙個資料庫pytest,建立一張名為titles的表,表中字段分別為id(int自增),title(varchar),url(varchar),如下:

進行資料庫操作的思路為:獲得資料庫連線(connection)->獲得游標(cursor)->執行sql語句(execute)->事物提交(commit)->關閉資料據庫連線(close),具體**實現如下:

# -*- coding:utf-8 -*-

from urllib import request

from bs4 import beautifulsoup

import pymysql

# mysql連線資訊(字典形式)

db_config ={

'host': '127.0.0.1',

'port': 3306,

'user': 'root',

'password': '',

'db': 'pytest',

'charset': 'utf8'

# 獲得資料庫連線

connection = pymysql.connect(**db_config)

# 資料庫配置,獲得連線(引數方式)

# connection = pymysql.connect(host='127.0.0.1',

# port=3306,

# user='root',

# password='',

# db='pytest',

# charset='utf8')

url = r''

# 模擬瀏覽器頭

headers = {

page = request.request(url, headers=headers)

page_info = request.urlopen(page).read().decode('utf-8')

soup = beautifulsoup(page_info, 'html.parser')

urls = soup.find_all('a', 'title')

try:

# 獲得資料庫游標

with connection.cursor() as cursor:

sql = 'insert into titles(title, url) values(%s, %s)'

for u in urls:

# 執行sql語句

cursor.execute(sql, (u.string, r''+u.attrs['href']))

# 事務提交

connection.commit()

finally:

# 關閉資料庫連線

connection.close()

**執行結果:

爬取騰訊招聘資訊存入mongodb資料庫

import requests from lxml import etree import time import pymongo import random class spidertencent object def init self 初始化url 網頁頁碼下標位址 爬蟲控制開關 self.u...

Python 爬取網頁資訊

對於本次學習爬蟲中的一些總結 1.要熟練掌握基礎知識,包括一些基礎的語法 2.正規表示式的正確使用,建議學習北理工的python爬蟲課程 3.先寫大框架再新增小的功能解析 4.對程式異常處理要熟練,盡量使用try.excep結構 5.對於列表字串資料的基本使用到位,比如增刪改查等 6.思路必須清晰 ...

Python 爬取天氣資訊

第一次python部落格,僅作紀念。import requests import re from bs4 import beautifulsoup requests庫從網上獲取資源,re bs4 庫,用來提取需要的資訊。開啟要爬取的 右擊檢視其源 找到感興趣的內容,如下 2020年01月12日 星期...