1 """
2 https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=100006852812&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1
3 page=0&pageSize=10
4 """
5 import json
6 from datetime import time
7 from random import randint
8
9 import pymysql
10 import requests
11 #连接数据库 获取游标
12 def get_conn():
13 """
14 :return: 连接,游标
15 """
16 # 创建连接
17 conn = pymysql.connect(host="127.0.0.1",
18 user="root",
19 password="000429",
20 db="info",
21 charset="utf8")
22 # 创建游标
23 cursor = conn.cursor() # 执行完毕返回的结果集默认以元组显示
24 if ((conn != None) & (cursor != None)):
25 print("数据库连接成功!游标创建成功!")
26 else:
27 print("数据库连接失败!")
28 return conn, cursor
29 #关闭数据库连接和游标
30 def close_conn(conn, cursor):
31 if cursor:
32 cursor.close()
33 if conn:
34 conn.close()
35 return 1
36
37 def jd_spider():
38 headers = {
39 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36'
40 }
41 res_data = [] #最终返回的数据
42 temp_data=[] #中间数据
43 for page_num in range(6,50):
44 url=f'https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=100006852812&score=0&sortType=5&page={page_num}&pageSize=1&isShadowSku=0&fold=1'
45 # 发起请求
46 response = requests.get(url, headers=headers)
47 response.encoding='GBK'
48 # 获取响应
49 res_text = response.text
50 # print(res_text)
51 new_res_text=res_text[20:-2]
52 # print(new_res_text)
53 res_json=json.loads(new_res_text)
54 # print(type(res_json)) #<class 'dict'>
55 comments=res_json['comments']
56 # print(comments[0])
57 comments_dict=comments[0]
58 # print(comments_dict.keys())
59 temp_data.append(comments_dict['id'])
60 temp_data.append(comments_dict['content'])
61 temp_data.append(comments_dict['creationTime'])
62 temp_data.append(comments_dict['referenceTime'])
63 temp_data.append(comments_dict['days'])
64 flag_isMobile=randint(0,1)
65 flag_userLevel=randint(0,1)
66 temp_data.append(flag_isMobile)
67 temp_data.append(flag_userLevel)
68 res_data.append(temp_data)
69 print(str(page_num),temp_data)
70 insert_jd(res_data)
71 temp_data=[]
72 res_data=[]
73 return
74
75 #插入
76 def insert_jd(data):
77 """
78 插入imdb数据
79 :return:
80 """
81 cursor = None
82 conn = None
83 try:
84 # list_=[]
85 # list = jd_spider()
86 # if(type(list)!=type(list_)):
87 # return -1
88 conn, cursor = get_conn()
89 sql = "insert into jd_comments(id,content,creationTime,referenceTime,days,flag_isMobile,flag_userLevel) values(%s,%s,%s,%s,%s,%s,%s)"
90 for item in data:
91 try:
92 print(item)
93 cursor.execute(sql, [item[0], item[1], item[2], item[3], item[4], item[5], item[6]])
94 except pymysql.err.IntegrityError:
95 print("出现错误!")
96 conn.commit() # 提交事务 update delete insert操作
97 finally:
98 close_conn(conn, cursor)
99 return
100
101 if __name__ == '__main__':
102 jd_spider()

id, 评论id

content,  评论

creationTime,  评论时间

referenceTime,  确认收货时间

days,  评论时间距【收货/下单】时间多长时间

isMobile(0 1) ,  是否移动端(0 PC端,1 移动端)

userLevel(0 1)    用户等级(1会员,0非会员)

Python爬虫爬取京东某商品评论信息存入mysql数据库的更多相关文章

  1. python爬虫爬取京东、淘宝、苏宁上华为P20购买评论

    爬虫爬取京东.淘宝.苏宁上华为P20购买评论 1.使用软件 Anaconda3 2.代码截图 三个网站代码大同小异,因此只展示一个 3.结果(部分) 京东 淘宝 苏宁 4.分析 这三个网站上的评论数据 ...

  2. Python爬虫-爬取京东商品信息-按给定关键词

    目的:按给定关键词爬取京东商品信息,并保存至mongodb. 字段:title.url.store.store_url.item_id.price.comments_count.comments 工具 ...

  3. JS+Selenium+excel追加写入,使用python成功爬取京东任何商品~

    之前一直是requests库做爬虫,这次尝试下使用selenium做爬虫,效率不高,但是却没有限制,文章是分别结合大牛的selenium爬虫以及excel追加写入操作而成,还有待优化,打算爬取更多信息 ...

  4. Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储

    Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...

  5. 毕设二:python 爬取京东的商品评论

    # -*- coding: utf-8 -*- # @author: Tele # @Time : 2019/04/14 下午 3:48 # 多线程版 import time import reque ...

  6. 利用Python爬虫爬取淘宝商品做数据挖掘分析实战篇,超详细教程

    项目内容 本案例选择>> 商品类目:沙发: 数量:共100页  4400个商品: 筛选条件:天猫.销量从高到低.价格500元以上. 项目目的 1. 对商品标题进行文本分析 词云可视化 2. ...

  7. Python 爬虫-爬取京东手机页面的图片

    具体代码如下: __author__ = 'Fred Zhao' import requests from bs4 import BeautifulSoup import os from urllib ...

  8. <爬虫>利用BeautifulSoup爬取百度百科虚拟人物资料存入Mysql数据库

    网页情况: 代码: import requests from requests.exceptions import RequestException from bs4 import Beautiful ...

  9. python 爬虫爬取历年双色球开奖信息

    目前写的这些爬虫都是些静态网页,对于一些高级网页(像经过JS渲染过的页面),目前技术并不能解决,自己也是在慢慢学习过程中,如有错误,欢迎指正: 对面前端知识本人并不懂,过程中如果涉及到前端知识,也是百 ...

  10. python制作爬虫爬取京东商品评论教程

    作者:蓝鲸 类型:转载 本文是继前2篇Python爬虫系列文章的后续篇,给大家介绍的是如何使用Python爬取京东商品评论信息的方法,并根据数据绘制成各种统计图表,非常的细致,有需要的小伙伴可以参考下 ...

随机推荐

  1. org.apache.http.client.ClientProtocolException: URI does not specify a valid host name:localhost:xxx

    今天部署应用的时候遇到的,总结一下我知道的有2个原因: 1.地址前要加http://  这就是标题报错的原因,他用的是localhost:xxx 2.地址本身拼错了也会报这个,例如地址:http:// ...

  2. win32 - wsprintfW的使用

    文档:将格式化的数据写入指定的缓冲区.根据格式字符串中相应的格式说明,将转换任何参数并将其复制到输出缓冲区.该函数在其写入的字符后附加一个终止空字符,但返回值的字符计数中不包含终止空字符. 例子: # ...

  3. [攻防世界][Web]ics-06

    打开靶机对应的url,展开是一个网站的样子,其实啥也么有 所有tab都点一遍,发现只有报表中心有内容,url为 http://61.147.171.105:49797/index.php?id=1 猜 ...

  4. django的orm多表查询作业第五题答案

    5.每个作者出版的所有书的最高价格以及最高价格的那本书的名称. 用django的模型类写不出来的,只能用原生sql写这题 关于第五题,mysql5.7及以上版本,使用下面的答案 set sql_mod ...

  5. 【Azure Notification Hub】如何手动删除 Notification Hub 中已注册的设备

    问题描述 在Notification Hub中注册了设备后,从Azure门户上没有找到相应的入口来删除已注册设备 (Active Devices) 如果使用C# SDK是否有办法删除呢? 问题解答 可 ...

  6. 【Azure 应用服务】Python Function App重新部署后,出现 Azure Functions runtime is unreachable 错误

    问题描述 Python Function App重新部署后,出现 Azure Functions runtime is unreachable 错误 问题解答 在Function App的门户页面中, ...

  7. 面试官上来就让手撕HashMap的7种遍历方式,当场愣住,最后只写出了3种

    写在开头 今天有个小伙伴私信诉苦,说面试官上来就让他手撕HashMap的7种遍历方式,最终只写出3种常用的,怀疑面试官是在故意***难.这个问题大家怎么看? 反正我个人感觉这肯定不是***难,&quo ...

  8. 浅入ABP(2):添加基础集成服务

    浅入ABP(2):添加基础集成服务 版权护体作者:痴者工良,微信公众号转载文章需要 <NCC开源社区>同意. 目录 浅入ABP(2):添加基础集成服务 定义一个特性标记 全局统一消息格式 ...

  9. 开源短信项目 platform-sms 发布了新版本 0.5.0

    Github : https://github.com/makemyownlife/platform-sms 短信服务 platform-sms 0.5.0 发布 ,新的版本做了非常多的优化和改进. ...

  10. vue 打包 可以加 --watch 持续打包 - 开发本地应用程序 - 套壳模式开发

    vue 打包 可以加 --watch 持续打包 - 开发本地应用程序 - 套壳模式开发 "watch": "vue-cli-service build --watch - ...