Skip to content

Commit 827a2f0

Browse files
authored
Merge pull request #2 from Dimlitter/Dimlitter-patch-1
Add files via upload
2 parents 68b8cf0 + 43a9aca commit 827a2f0

File tree

2 files changed

+44
-42
lines changed

2 files changed

+44
-42
lines changed

auto_comment_plus.py

Lines changed: 17 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
jieba.setLogLevel(jieba.logging.INFO)
2121

22+
2223
with open(CONFIG_PATH, 'r', encoding='utf-8') as f:
2324
cfg = yaml.safe_load(f)
2425
ck = cfg['user']['cookie']
@@ -32,15 +33,14 @@
3233

3334

3435
# 评价生成
35-
def generation(pname, _class=0, _type=1):
36+
def generation(pname, _class=0):
3637
list = ['商品名']
3738
list.clear()
3839
list.append(pname)
3940
for item in list:
4041
spider = jdspider.JDSpider(item)
41-
result = spider.getData(3, 3) # 这里可以自己改
42+
result = spider.getData(4, 3) #这里可以自己改
4243

43-
# 0是追评 1是评价
4444
# class 0是评价 1是提取id
4545
try:
4646
name = jieba.analyse.textrank(pname, topK=5, allowPOS='n')[0]
@@ -49,30 +49,15 @@ def generation(pname, _class=0, _type=1):
4949
if _class == 1:
5050
return name
5151
else:
52-
datas = {
53-
1: {
54-
"开始": result,
55-
"中间": result, # 重复的几率不大,相信我(
56-
"结束": result
57-
},
58-
0: {
59-
"开始": result,
60-
"中间": result,
61-
"结束": result
62-
}
63-
}
64-
if _type == 1:
65-
comments = datas[_type]
66-
return random.randint(3, 5), (
67-
random.choice(comments["开始"]) +
68-
random.choice(comments["中间"]) +
69-
random.choice(comments["结束"])).replace("$", name)
70-
elif _type == 0:
71-
comments = datas[_type]
72-
return (
73-
random.choice(comments["开始"]) +
74-
random.choice(comments["中间"]) +
75-
random.choice(comments["结束"])).replace("$", name)
52+
comments = ''
53+
if len(result) > 8 :
54+
for i in range(8):
55+
comments = comments + result.pop()
56+
else:
57+
for i in range(len(result)):
58+
comments = comments + result.pop()
59+
return 5, (
60+
comments.replace("$", name))
7661

7762

7863
# 查询全部评价
@@ -122,7 +107,6 @@ def ordinary(N):
122107
print(f"\t{i}.开始评价订单\t{oname}[{oid}]")
123108
url2 = "https://club.jd.com/myJdcomments/saveProductComment.action"
124109
xing, Str = generation(oname)
125-
xing = 5 # 写死五星
126110
print(f'\t\t评价内容,星级{xing}:', Str)
127111
data2 = {
128112
'orderId': oid,
@@ -133,7 +117,7 @@ def ordinary(N):
133117
'anonymousFlag': '1'
134118
}
135119
pj2 = requests.post(url2, headers=headers, data=data2)
136-
time.sleep(20)
120+
time.sleep(10)
137121
N['待评价订单'] -= 1
138122
return N
139123

@@ -187,7 +171,7 @@ def sunbw(N):
187171
'saveStatus': 3
188172
}, headers=headers)
189173
print('完成')
190-
time.sleep(50)
174+
time.sleep(5)
191175
N['待晒单'] -= 1
192176
return N
193177

@@ -218,7 +202,7 @@ def review(N):
218202
pid, oid = _id.replace(
219203
'http://club.jd.com/afterComments/productPublish.action?sku=',
220204
"").split('&orderId=')
221-
context = generation(oname, _type=0)
205+
context = generation(oname)
222206
print(f'\t\t追评内容:{context}')
223207
req_url1 = requests.post(url1, headers=headers, data={
224208
'orderId': oid,
@@ -228,7 +212,7 @@ def review(N):
228212
'score': 5
229213
})
230214
print('完成')
231-
time.sleep(30)
215+
time.sleep(10)
232216
N['待追评'] -= 1
233217
return N
234218

@@ -271,7 +255,7 @@ def Service_rating(N):
271255
}
272256
pj1 = requests.post(url1, headers=headers, data=data1)
273257
print("\t\t", pj1.text)
274-
time.sleep(25)
258+
time.sleep(15)
275259
N['服务评价'] -= 1
276260
return N
277261

jdspider.py

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,9 @@ def getData(self, maxPage, score,): # maxPage是爬取评论的最大页数,
7474
for j in range(sum):
7575
id = self.productsId[j]
7676
header = self.getHeaders(id)
77-
for i in range(1, maxPage):
78-
param, url = self.getParamUrl(id, i, score)
79-
print(">>>>>>>>>>>>>>>>第:%d 个,第 %d 页" % (j, i))
77+
for i in range(1,maxPage):
78+
param,url = self.getParamUrl(id,i,score)
79+
print("正在爬取评论信息>>>>>>>>>第:%d 个,第 %d 页"%(j,i))
8080
try:
8181
response = requests.get(url, headers=header, params=param)
8282
except Exception as e:
@@ -110,15 +110,33 @@ def getData(self, maxPage, score,): # maxPage是爬取评论的最大页数,
110110
# 存入列表,简单处理评价
111111
remarks = []
112112
for i in range(len(comments)):
113-
rst = re.findall(zhon.hanzi.sentence, comments[i])
114-
if len(rst) == 0 or rst == ["。"] or rst == ["?"] or rst == ["!"] or rst == ["."] or rst == [","] or rst == ["?"] or rst == ["!"]:
115-
logging.warning("拆分失败或结果不符(去除空格和标点符号):%s" % (rst))
113+
rst = re.findall(zhon.hanzi.sentence,comments[i])
114+
if len(rst) == 0 or rst == ['。'] or rst == ['?'] or rst == ['!'] or rst == ['.'] or rst == [','] or rst == ['?'] or rst == ['!']:
115+
logging.warning("拆分失败或结果不符(去除空格和标点符号):%s"%(rst))
116116
else:
117117
remarks.append(rst)
118118
result = self.solvedata(remarks=remarks)
119-
if len(result) == 0:
120-
logging.warning("当前商品没有评价,强制退出程序,请自行评价")
121-
sys.exit(0)
119+
if len(result)==0:
120+
logging.warning("当前商品没有评价,使用默认评价")
121+
result = ["考虑买这个$之前我是有担心过的,因为我不知道$的质量和品质怎么样,但是看了评论后我就放心了。",
122+
"买这个$之前我是有看过好几家店,最后看到这家店的评价不错就决定在这家店买 ",
123+
"看了好几家店,也对比了好几家店,最后发现还是这一家的$评价最好。",
124+
"看来看去最后还是选择了这家。",
125+
"之前在这家店也买过其他东西,感觉不错,这次又来啦。",
126+
"这家的$的真是太好用了,用了第一次就还想再用一次。",
127+
"收到货后我非常的开心,因为$的质量和品质真的非常的好!",
128+
"拆开包装后惊艳到我了,这就是我想要的$!",
129+
"快递超快!包装的很好!!很喜欢!!!",
130+
"包装的很精美!$的质量和品质非常不错!",
131+
"收到快递后迫不及待的拆了包装。$我真的是非常喜欢",
132+
"真是一次难忘的购物,这辈子没见过这么好用的东西!!",
133+
"经过了这次愉快的购物,我决定如果下次我还要买$的话,我一定会再来这家店买的。",
134+
"不错不错!",
135+
"我会推荐想买$的朋友也来这家店里买",
136+
"真是一次愉快的购物!",
137+
"大大的好评!以后买$再来你们店!( ̄▽ ̄)",
138+
"真是一次愉快的购物!"
139+
]
122140
return result
123141

124142
def solvedata(self, remarks):

0 commit comments

Comments
 (0)