python语言网络爬虫学习(二)

内容简介

这一章节主要写如何将python爬取的内容存储在json文件和mysql数据库。

存储为json文件

我们使用BeautifulSoup解析网页,爬取搜狗微信热点榜前十的内容和指向的网址,并存储为json文件,python保存json文件需要使用到json库。文件自然而然就会保存在当前工作路劲。

import requests
from bs4 import BeautifulSoup

rqq = requests.get('https://weixin.sogou.com/') #HTTP请求
soup = BeautifulSoup(rqq.content, 'lxml') #转换格式
soup.select('#topwords')  #可以查看id属性为topwords的
dat = soup.select('.hot-news > li > a') 
#[i.text for i in soup.select('.hot-news > li > a')] #提取内容
#[i['title'] for i in soup.select('.hot-news > li > a')]
names = [i.text for i in dat]
href = [i['href'] for i in dat]  #提取指向网址
print(names, href)
import json
with open('./temp.json', 'w') as f:
    json.dump({'names': names, 'href': href}, f, ensure_ascii=False) 

可以使用记事本或者notepad++打开文件都没有问题,并且json文件就是以字典的形式展现的。
在这里插入图片描述

存储在mysql数据库

我们想要将爬取信息存储在数据库,得先将数据转变为dataframe形式,然后利用pymysql,使用create_engine函数,建立一个数据库连接。其中create_engine构造形式:
数据库产品名+连接工具名://用户名:密码@数相库IP地址:数据库端口号数据库名称?charset=数据库数据编码
数据存储用pandas的to_sql方法:
DataFrame.to_sql(name,con,schema=None,ifexists=‘fail’,index=True,index_label=None,dtype=None)
在这里插入图片描述

from sqlalchemy import create_engine
con = create_engine('mysql+pymysql://root:123@localhost/test?charset=utf8')
import pandas as pd
pd.DataFrame({'names': names, 'href': href}).to_sql('temp29', con)  #需要提前创建数据库

在这里插入图片描述
在将我们爬取内容存储在数据库中是遇到了一点麻烦,这个问题我在网上看到很多小伙伴也没有搞定,所以就将这个报错写在这个博客:写进数据库报错无法解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值