猫史档案馆


【Python作品分享】python网络数据采集【作品秀】

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


【作品展示】

center_image

 

【作品介绍】

可以 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


回复

上一页1 页 / 共 1下一页
小多6tl4小多6tl4

不全面,有可能会访问失败或终止

点赞0


评论