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.jianshu.com/p/1be724551bdc

2 程序代码
#encoding=utf-8
import urllib.request
import re
import pymysql
conn = pymysql.connect(host=“127.0.0.1”,user=“lyx”,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 |

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值