第五章 数据存储到mysql数据库

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
# import pymysql
# conn= pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='mysql')
# cur=conn.cursor()
# cur.execute("use scraping")
# cur.execute("select * from pages where id=1")
# print(cur.fetchone())
# cur.close()
# conn.close()

# 采集页面存储到数据库中
import datetime
import random
import re
from urllib.request import urlopen

import pymysql
from bs4 import BeautifulSoup

conn= pymysql.connect(host='127.0.0.1',user='root',passwd='root',db='mysql',charset='utf8')
cur=conn.cursor()
cur.execute("use scraping")
random.seed(datetime.datetime.now())
def store(title,content):
    cur.execute("insert into pages(title,content) values (\"%s\",\"%s\")",(title,content))
    cur.connection.commit()
def getLinks(articleUrl):
    html=urlopen("https://en.wikipedia.org/"+articleUrl)
    bsObj=BeautifulSoup(html,"html.parser")
    title=bsObj.find("h1").get_text()
    content=bsObj.find("div",{"id":"mw-content-text"}).find("p").get_text()
    store(title,content)
    return bsObj.find("div",{"id":"bodyContent"}).findAll("a", href=re.compile("^(/wiki/)((?!:).)*$"))
links=getLinks("/wiki/Kevin_Bacon")
try:
    while len(links)>0:
        newArticle=links[random.randint(0,len(links)-1)].attrs['href']
        print(newArticle)
        links=getLinks(newArticle)
finally:
    cur.close()
    conn.close()

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值