您的位置:首页 > 编程语言 > Python开发

python获取xueqiu数据并保存mysql

2018-08-16 00:33 85 查看
from urllib import request
import json
import pymysql

headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
'Cookie':'device_id=13e2514e91b98401cb9329e083b82341; _ga=GA1.2.337120968.1531222184; s=di18f4odyn; __utma=1.337120968.1531222184.1531222464.1531222464.1; __utmz=1.1531222464.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); aliyungf_tc=AQAAAO7zQWM4VQYAM095aguXBbRs7C1j; xq_a_token=584d0cf8d5a5a9809761f2244d8d272bac729ed4; xq_a_token.sig=x0gT9jm6qnwd-ddLu66T3A8KiVA; xq_r_token=98f278457fc4e1e5eb0846e36a7296e642b8138a; xq_r_token.sig=2Uxv_DgYTcCjz7qx4j570JpNHIs; Hm_lvt_1db88642e346389874251b5a1eded6e3=1534295863; Hm_lpvt_1db88642e346389874251b5a1eded6e3=1534295863; u=541534295863773; _gid=GA1.2.1422992774.1534295864; _gat_gtag_UA_16079156_4=1',
}
# 定义初始id
html_id = -1
# 定义初始count
count = 10
# 获取三次ajax数据
for i in range(3):
# url网址
url = 'https://xueqiu.com/v4/statuses/public_timeline_by_category.json?since_id=-1&max_id={}&count={}&category=111'.format(html_id,count)
# 发送请求
req = request.Request(url, headers=headers)
# 接受数据
response = request.urlopen(req)
# 转换成str格式
html = response.read().decode('utf-8')

# 装换成dict格式 字典
html_list = json.loads(html)
# 获取新的ID 创建下次的url
html_id = html_list['next_max_id']
# 定义新的count 创建下次的url
count = 15
# print(html_list)
# 循环拿出每条数据
for i in html_list['list']:
# 转换成字典,并拿出数据
data_sr = json.loads(i['data'])
# 获取所需要的数据
uid = data_sr['id']
title = data_sr['title']
description = data_sr['description']
target = data_sr['target']
# 打印预览
print(uid,title,description,target)
# 每次数据的分割线
print('--'*50)
# 连接mysql
db = pymysql.connect(host='127.0.0.1', user='root', password='123456', port=3306, database='python')
# 创建游标
cursor = db.cursor()
# 准备sql语句
sql = '''insert into xueqiu(uid,title,description,target) values ("{}","{}",'{}',"{}")'''.format(uid,title,description,target)
# 游标执行sql语句
cursor.execute(sql)
# 提交sql语句 默认没有自动提交
db.commit()
# 关闭游标
cursor.close()
# 关闭连接
db.close()
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: