爬虫抓取网页数据( Python脚本如何使用MySQL处理数据?教程网这会将从Wikipedia收集)

优采云 发布时间: 2021-12-11 07:26

  爬虫抓取网页数据(

Python脚本如何使用MySQL处理数据?教程网这会将从Wikipedia收集)

  soup=BeautifulSoup(r.text, 'lxml')

  现在,在下几行代码的帮助下,我们将捕获的数据写入名为 dataprocessing.csv 的 CSV 文件中。

  f=csv.writer(open(' dataprocessing.csv ','w'))

f.writerow(['Title'])

f.writerow([soup.title.text])

  运行此脚本后,文本信息或网页标题将保存在本地计算机上的上述CSV文件中。

  同样,我们可以将采集到的信息保存在一个 JSON 文件中。下面是一个通俗易懂的Python脚本,执行与之前的Python脚本相同的信息,但这次使用JSON Python模块将获取的信息保存在JSONfile.txt中。

  import requests

from bs4 import BeautifulSoup

import csv

import json

r=requests.get('https://authoraditiagarwal.com/')

soup=BeautifulSoup(r.text, 'lxml')

y=json.dumps(soup.title.text)

with open('JSONFile.txt', 'wt') as outfile:

json.dump(y, outfile)

  运行此脚本后,捕获的信息(即页面标题)将保存在本地计算机上的上述文本文件中。

  MySQL 数据处理

  让我们学习如何使用MySQL来处理数据。如果你想了解MySQL,可以点击链接。

  借助以下步骤,我们可以将数据捕获并处理成MySQL表-

  步骤 1-首先,通过使用 MySQL,我们需要创建一个数据库和表,我们要在其中保存捕获的数据。比如我们使用下面的查询来创建一个表——

  CREATE TABLE Scrap_pages (id BIGINT(7) NOT NULL AUTO_INCREMENT,

title VARCHAR(200), content VARCHAR(10000),PRIMARY KEY(id));

  第 2 步 - 接下来,我们需要处理 Unicode。请注意 MySQL 默认不处理 Unicode。我们需要使用下面的命令来打开这个功能,这些命令会改变数据库、表和两列的默认字符集-

  ALTER DATABASE scrap CHARACTER SET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

ALTER TABLE Scrap_pages CONVERT TO CHARACTER SET utf8mb4 COLLATE

utf8mb4_unicode_ci;

ALTER TABLE Scrap_pages CHANGE title title VARCHAR(200) CHARACTER SET utf8mb4

COLLATE utf8mb4_unicode_ci;

ALTER TABLE pages CHANGE content content VARCHAR(10000) CHARACTER SET utf8mb4

COLLATE utf8mb4_unicode_ci;

  第 3 步 - 现在,将 MySQL 与 Python 集成。为此,我们需要 PyMySQL,它可以使用以下命令安装

  pip install PyMySQL

  第 4 步 - 现在,我们之前创建的名为 Scrap 的数据库已准备好从 Web 获取数据并将其保存在名为 Scrap_pages 的表中。在我们的示例中,我们将从维基百科获取数据并将其保存到我们的数据库中。

  首先,我们需要导入所需的 Python 模块。

  现在,创建一个连接以将其与 Python 集成。

  conn=pymysql.connect(host='127.0.0.1',user='root', passwd=None, db='mysql',

charset='utf8')

cur=conn.cursor()

cur.execute("USE scrap")

random.seed(datetime.datetime.now())

def store(title, content):

cur.execute('INSERT INTO scrap_pages (title, content) VALUES ''("%s","%s")', (title, content))

cur.connection.commit()

  现在,连接到维基百科并从中获取数据。

  def getLinks(articleUrl):

html=urlopen('http://en.wikipedia.org'+articleUrl)

bs=BeautifulSoup(html, 'html.parser')

title=bs.find('h1').get_text()

content=bs.find('div', {'id':'mw-content-text'}).find('p').get_text()

store(title, content)

return bs.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()

  这将从维基百科采集的数据保存到一个名为scrap_pages的表中。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线