1. 程式人生 > >python:簡單爬蟲示例,含分析文件,建庫,程式程式碼

python:簡單爬蟲示例,含分析文件,建庫,程式程式碼

環境:ubantu18.04,mysql5.7,python3.6

1.分析文件 1.1 目標 爬取笑話集-最新兒童笑話大全前三頁的笑話題目,訪問量,發表時間 1.2 URL 第一頁:www.jokeji.cn/list7_1.htm 第三頁:www.jokeji.cn/list7_3.htm 第N頁:www.jokeji.cn/list7_N.htm 注:得出規律,並驗證 1.3 資料項 經分析,擬採用正則表示式獲取資料 題目:‘target="_blank" >(.?)’ 發表時間:’(.?)’ 每頁共有21條資料。 1.4 資料庫 mysql:test_database資料庫-jokejiChildren表(title varchar(128),visitNum int,pubDate date),SQL語句如下: (1)create database test_database; (2)use test_database; (3)create user ‘lyx’ identified by ‘123lyx’; (4)create table jokejiChildren(title varchar(128),visitNum int,pubDate date); (5)grant select,delete, insert on test_database.jokejiChildren to ‘lyx’; 建庫建使用者sql參考:

https://www.cnblogs.com/xujishou/p/6306765.html https://www.jianshu.com/p/1be724551bdc

2 程式程式碼 #encoding=utf-8 import urllib.request import re import pymysql conn = pymysql.connect(host=“127.0.0.1”,user=“root”,passwd=“123lyx”,db=“test_database”,charset=“utf8”)

for i in range(0,3): url = ‘http://www.jokeji.cn/list7_’+str(i+1)+’.htm’ #res= urllib.request.urlopen(url).read().decode(‘utf-8’,‘ignore’) res= urllib.request.urlopen(url).read() if isinstance(res,str): #res = res.encode(‘utf-8’,‘ignore’) else: res = res.decode(‘gb2312’,‘ignore’) patTitile = ‘target="_blank" >(.?)’ patPubDate = '(.

?)’ title = re.compile(patTitile,re.S).findall(res) pubDate = re.compile(patPubDate,re.S).findall(res) for j in range(0,len(title)): sql = “insert into jokeChildren(title,pubDate) values(’”+(title[j])+"’,STR_TO_DATE(’"+(pubDate[j])+"’,’%Y-%m-%d’))" conn.query(sql) conn.commit()

3 執行結果 mysql> select title,pubdate from jokeChildren; ±--------------------------------------------------±-----------+ | title | pubdate | ±--------------------------------------------------±-----------+ | 熊孩子可是搞笑的花朵喲! | 2018-10-14 | | 把你氣個半死也笑個半死的是熊孩子 | 2018-10-09 | | 爆逗,小孩子讓你對笑沒有抵抗力 | 2018-09-29 | | 一波熊寶寶的冷幽默 | 2018-09-28 | | 小朋友把你妥妥的笑趴下 | 2018-09-25 | | 忍俊不禁,童萌最搞笑 | 2018-09-22 | …