初探python之做乙個簡單小爬蟲

2021-09-14 04:00:07 字數 3354 閱讀 6772

初探python,這個文章屬於自己的乙個總結。所以教程面向新手,無技術含量。

python環境linux基本都有,windows下官網也提供了便利的安裝包,怎麼安裝配置網上有很多教程在此就不一一說明。

我使用的python版本為python 3.6.4,後面的**也是基於python3的。

做乙個小爬蟲離不開獲取網頁內容和匹配儲存內容,那麼我們先裝上python爬蟲的老朋友requests:

pip install requests

再裝上pymysql擴充套件,方便將匹配到的內容插入到mysql資料庫中:

pip install pymysql

在python中有意思的是你需要什麼,就去import什麼,不像php一樣獲取網頁內容直接來個file_get_contents完事兒

廢話不多說,貼出**來看一下:

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

# 載入 requests 模組

import requests

# get方式獲取 response 物件

response = requests.get('')

if response:

# 輸出html**到控制台

print(response.text)

else:

# 輸出錯誤資訊

print('requests error')

在python中縮排一定要嚴格,初學者(4個空格為語句塊縮排)經常犯的錯誤是tab鍵和空間鍵混用,造成的縮排不一致。凡是報錯資訊看到:indentationerror: unexpected indent ,就是表示縮排不一致。

如果本身沒有編碼基礎,那麼我推薦你看一下python的基本概念:

如果已經有了編碼基礎但對縮排這方面沒有深究,可以看python的縮排規範:

好,寫完**之後我們拿到控制台試一下,完美輸出html**

既然能夠獲取html**,那我們就要找出需要的部分,這就用上了正則。python 自1.5版本起增加了 re 模組,它提供 perl 風格的正規表示式模式。具體細節可以在菜鳥教程中檢視:

話不多說再貼**:

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

# 載入 requests 模組

import requests

# 載入 re 模組

import re

response = requests.get('')

# 正則匹配文字

match = re.findall(r'([\s\s]*?)

', response.text)

if match:

# 輸出匹配的內容到控制台

print(match[0])

else:

# 輸出html**到控制台

首先我們把資料庫和表做好,可以用sql語句建立:

create database if not exists `sentence`;

use `sentence`;

create table if not exists `***y` (

`id` int(11) not null auto_increment,

`content` varchar(50) not null,

`datetime` timestamp null default current_timestamp on update current_timestamp,

primary key (`id`),

unique key `content` (`content`)

) engine=myisam default charset=utf8;

這裡將content設定為了unique key,是為了保證抓取到的內容不重複,如果有已存在的值便直接跳過

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

# 載入 requests 模組

import requests

# 載入 re 模組

import re

# 載入 pymysql 模組

import pymysql

# 開啟資料庫連線

db = pymysql.connect('127.0.0.1', 'root', 'root', 'sentence', charset='utf8')

# 使用cursor()方法獲取操作游標

cursor = db.cursor()

#死迴圈到天長地久

while(true):

response = requests.get('')

# 正則匹配文字

match = re.findall(r'([\s\s]*?)

', response.text)

if match:

sql = "insert into `***y` (`content`) values ('%s')" % (match[0])

try:

# 執行sql語句

cursor.execute(sql)

# 提交到資料庫執行

db.commit()

except:

# 如果發生錯誤則回滾

db.rollback()

# 輸出sql語句到控制台

print(sql)

else:

# 輸出html**到控制台

print(response.text)

執行演示:

資料庫內容:

python是個好東西,萬物based on python。

感覺教程貼比較難寫,每個地方都有細節,但如果講細了文章又太繁瑣,若簡單些不好取捨初學者又看不懂什麼意思,向那些寫易懂的入門教程文章的作者致敬。

注:由於原**不方便公布,**中的**全部替換為了***.com。

原始碼在github中:

歡迎star

python 使用python做乙個簡單爬蟲

爬蟲的步驟如下 1.獲取資料 2.篩選資料 3.儲存資料 4.顯示資料 在這裡我們主要使用urllib2庫來對網頁進行爬取,本次我們爬取的參考 是 我們可以觀察內容 發現正文的內容都在這個標籤內,所以我們可以通過正則篩選出內容 正則內容如下 pattern re.compile r re.s 然後再...

用Python做乙個久坐提醒小助手

不論是日常的工作還是學習,現代年輕人在電腦螢幕時長資料能讓人驚掉下巴,繼而引發一系列身體不適的現象。小李也是久坐族中的一員,為了時刻提醒自己起來活動活動,我開發了一款基於pythongui程式設計的久坐提醒小助手。整體的構思類似於乙個番茄時鐘,提供乙個倒計時功能並且在完成計時時發出警告。主要分為如下...

python 做乙個簡單的計算器

def jisuanqi 實現加減乘除運算 a,b,c shuru if c z a b print s s 的和為 s a,b,z elif c z a b print s s 的差為 s a,b,z elif c z a b print s s 的積為 s a,b,z elif c z a b ...