用户:小多6tl4查看:0 回复:1 评论:0 创建时间:2022-08-08T07:19:13
【作品展示】

【作品介绍】
可以 python网络数据采集14 wiki的标题和正文存进mysql
【作品源代码】
import pymysql
import datetime
import random
import re
from bs4 import BeautifulSoup
from urllib.request import urlopen
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root',passwd='12345', db='mysql', charset='utf8') # 所有发送到数据库的信息当成utf8
cur = conn.cursor()
cur.execute('use scrapying')
random.seed(datetime.datetime.now()) # seed设置生成随机数用的整数起始值
def store(title, content):
cur.execute(
"insert into pages (title,content) values (\"%s\",\"%s\")", (title, content))
cur.connection.commit() # 提交事务
def getLinks(articleUrl):
html = urlopen("http://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() # 得到包含正文的div标签
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: # 如果有/wiki/开头的链接存在
# 在所有/wiki/开头的连接中随机取一个
newArticle = links[random.randint(0, len(links)-1)].attrs["href"]
print(newArticle)
links = getLinks(newArticle)
finally:
cur.close()
conn.close()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn