做的网站怎么样才能再网上看到,金蝶erp软件下载,镇江建网站,wordpress 关闭rss前言#xff1a;
平常大家都有网上购物的习惯#xff0c;在商品下面卖的好的产品基本都会有评论#xff0c;当然也不排除有刷评论的情况#xff0c;因为评论会影响我们的购物决策。今天主要分享用pythonre正则表达式获取京东商品评论。API接口获取京东平台商品详情SKU数据…
前言
平常大家都有网上购物的习惯在商品下面卖的好的产品基本都会有评论当然也不排除有刷评论的情况因为评论会影响我们的购物决策。今天主要分享用pythonre正则表达式获取京东商品评论。API接口获取京东平台商品详情SKU数据
环境准备
pyhon编译器版本python3.7.4
集成开发环境(IDE)pycharm版本2020.1.5
相关包的安装
pip install requests
整体框架 分析商品评论网页 发送请求获取响应内容 re正则表达式提取信息 pandas保存信息 运行主程序 总结 分析网页
打开京东官网我搜的是电脑因为是获取商品的评论我选了评论数比较多的产品然后可以在下方可以看到商品的评论。 接下来就是按F12选择网页。然后点击第二页刷新网页。在往下拉的过程中可以看到有个productPageComments.......页面点击然后看下预览。下方就可以看到评论信息comments依次点开后查看第一个信息网页往上拉返回可以看到网页的信息和我们要查看的信息一致。 正是我们需要找的信息这里注意的是因为选择第二页刷新的信息如果第一页刷新过也有第一页的网页productPageComments,如何去辨别呢。我们可以看下参数信息也就是查看载荷。 看下参数下面有个page1。注意刷新的页面还是第二页。这个很容易判断是第一页。我们先滚动页面继续找到productPageComments,然后可以看到载荷下面的参数page:0 也就是页面的规律是从0开始的我们可以再验证一下选择第三页刷新看载荷下方的参数顺便看下参数是否有加密。 第三页可以发现page:2,说明页面就是从0开始的然后看下其他的参数基本不变没有出现加密的情况变化的主要page。这就是我们要找的网页页面规律。
然后需要看下响应的内容继续回到预览可以看到一页有10条评论初步判断格式比较像json格式json格式的数据和python数据结构的字典比较类似这里面涉及python的基本语法不在这赘述。
2.发送请求获取响应内容
首先看下标头信息 我们需要了解基本的请求网址请求方法状态码。
请求方法是get后面就可以通过get方法向网页发送请求有些网页是post。状态码是200,说明请求是ok的如果遇到其他状态码说明请求不成功比如304503。具体的状态码不在这赘述可以网上查资料了解。不妨借助下ChatGPT的回答 ChatGPT的回答还是比较详细给它点个赞 另外需要看的是请求标头下方的信息比如cookie,user_agent。 cookie是用来存储用户信息服务器会去识别用户的信息。一般请求头需要带上cookie来做浏览器的伪装。下面看下百科的解释 然后对比下ChatGPT的回答 user_agent用户代理是电脑的基本信息电脑系统的版本用的浏览器版本等一般也是用来做浏览器的伪装。
然后看下ChatGPT对User_agent的解释 接下来看下具体的请求代码 注释定义函数获取响应内容带上请求头信息用requests 和get方法发送请求text就是响应的内容。
3.re正则表达式提取信息
re(regular expression)正则表达式的作用是精确匹配网页的信息提取关键信息功能也是比较强大比如提取用来数字包括小数整数等,还可以用来提取邮箱身份证信息等。
下面看下ChatGPT回答 具体也可查阅其他资料详细了解其用法。
re提取信息的关键代码如下 4.用pandas来保存信息。
相关代码如下 定义函数 参数是data,下面是字段名称用pandas构造DataFrame保存到excel表格中。
5.运行主程序
考虑到程序的性能和评论的时效性本次采集前50页信息用for循环遍历每一页的url然后批量获取每一页的信息。
相关代码如下 运行结果部分数据展示 总共获取500条评论。
完整代码
import requests
import re
import json
import pandas as pd
# 基本urlBASE_URL https://club.jd.com/comment/productPageComments.action?
callbackfetchJSON_comment98productId100035712310score0sortType5
page{}pageSize10isShadowSku0rid0fold1
# 定义函数访问页面 def scrape_url(n): url BASE_URL.format(n) return url def get_reviews_html(url): # 请求头 headers { cookie: __jdu1659013711311387516036; shshshfpa96b8fa44-7940-4a82-dc6b-ae9ec11053d8-1671423464; shshshfpbl3JPGq-Nsv3ryl-UYczuTVg; unplJF8EAMhnNSttXEhSBh0LG0IZTlsBW11YGx4LbDAHBllbHANXEwFIFBl7XlVdXxRKFB9sYxRUXVNLVA4ZBisSEXteXVdZDEsWC2tXVgQFDQ8VXURJQlZAFDNVCV9dSRZRZjJWBFtdT1xWSAYYRRMfDlAKDlhCR1FpMjVkXlh7VAQrAhwWGEpdVlhdCEkXA21uA1BdX0pWAisDKxUge21WWVwPSRYzblcEZB8MF1cBHwEZF11LWlBWXAhJEQNvZQVUX1FNUAUcAxkVIEptVw; __jdv76161171|baidu-pinzhuan|t_288551095_baidupinzhuan|cpc|0f3d30c8dba7459bb52f2eb5eba8ac7d_0_5272781a847d41aa892f3c52ffc92b78|1677294929187; areaId19; PCSYCityIDCN_440000_440300_0; shshshfpx96b8fa44-7940-4a82-dc6b-ae9ec11053d8-1671423464; shshshfpedea99a27fbc1b9e7a0a677bc566df49; __jdc122270672; ip_cityCode1601; ipLoc-djd19-1607-4773-62121; jwotest_product99; 3AB9D23F7A4B3C9BJLXTWBOH4BNFVY37YNSE4B6N2OLXI7T6WIX336O237ZEYUEAF4RFRCLPN3AEBN5FK556TM2FSRQABIGENHAVETWTGA; jsavif1; __jda122270672.1659013711311387516036.1659013711.1677312527.1677330268.7; __jdb122270672.1.1659013711311387516036|7.1677330268; shshshsID426d0c1911285cc51524a751262039de_1_1677330269246; JSESSIONID85D1CE4A20581F98C688EA0EFE2CB175.s1, referer: https://item.jd.com/, user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36, } # 发送请求 response requests.get(urlurl,headersheaders) # 获取响应内容 result response.text print(result) return result # 创建空列表用来存放信息 data [] def get_goods_contents(result): # 提取评论内容 content re.findall(guid.*?content:(.*?),result) # print(content) # 提取产品尺寸 productSize re.findall(productColor:(.*?),result) # print(productSize) # 提取产品配置 productConfig re.findall(productSize:(.*?),result) # print(productConfig) # 提取评论创建时间 creationTime re.findall(creationTime:(.*?),result) # 用for 循环批次把信息储存到data for i in range(len(productSize)): data.append([productSize[i],creationTime[i],productConfig[i],content[i]]) # print(data) return data def save_reviews(data): columns [产品尺寸,评论时间,产品配置,产品评论] df pd.DataFrame(data,columnscolumns) df.to_excel(电脑评论.xlsx,encodingutf-8) # 运行主程序 if __name____main__: for i in range(0,50): # 调用函数依次访问页面 url scrape_url(ni) # 调用函数获取响应内容 result get_reviews_html(url) # 调用函数获取数据 data get_goods_contents(result) # 调用函数保存信息
save_reviews(data) 总结 本次主要实战采集京东商品电脑商品信息评论其他商品换关键词就可以。 文章借助了ChatGPT对一些概念做了一些解释比如cookie表达式。加深对基本概念的理解与运用。 这些评论如何清洗分析去挖掘其中的商业价值