动态HTML页面数据的获取可以使用request库得到服务器发送来的数据,但是京东商品评论包含全部评论、好评、中评、差评等。这里是用Selenium模拟点击转到相应的页面来获取页面内容,具体分为以下几个步骤:
1.得到商品页面链接,这里我们爬取Kindle: [【Kindlekindle】Kindle paperwhite4 电子书阅读器 电纸书墨水屏6英寸wifi黑色 8G【行情 报价 价格 评测】-京东]
2. 等所有元素加载出,点击“商品评价”按钮,点击“好评“按钮
3. 等待页面加载完成,获取Html文档内容,当前页面好评的所有评论位置是"div", id=“comment-4"标签下所有的"div”,class_="comment-item"标签
4. 将内容写入EXCEL,这里进行文件是否存在的判断,进行文件创建或追加的,同时写入每一条数据的类型(好评还是差评)和字数。
5. 差评同理
---------------------
注意几点问题
*EXCEL的追加只能是先copy再覆盖
*driver全屏打开,”下一页"元素被挡住的话就点击不到,出现not clickable的错误
*点击”商品评价"按钮时,系统默认会加载“全部评价”,所以“dd=driver.find_elements_by_css_selector(‘a.ui-pager-next’)”是一个列表,而dd[0]是“全部评价”下的“下一页”
---------------------
完整代码
from bs4 import BeautifulSoup
imp