利用Python批量抓取京东评论数据

京东图书评论有非常丰富的信息,这里面就包含了购买日期、书名、作者、好评、中评、差评等等。以购买日期为例,使用Python + Mysql的搭配进行实现,程序不大,才100行。相关的解释我都在程序里加注了:

 1 from selenium import webdriver
 2 from bs4 import BeautifulSoup
 3 import re
 4 import win32com.client
 5 import threading,time
 6 import MySQLdb
 7
 8 def mydebug():
 9     driver.quit()
10     exit(0)
11 #Python群125240963每天更新学习资料
12 def catchDate(s):
13     """页面数据提取"""
14     soup = BeautifulSoup(s)
15     z = []
16     global nowtimes
17
18     m = soup.findAll("div",class_="date-buy")
19     for obj in m:
20         try:
21             tmp = obj.find(‘br‘).contents
22         except Exception, e:
23             continue
24         if(tmp != ""):
25             z.append(tmp)
26             nowtimes += 1
27     return z
28
29 def getTimes(n,t):
30     """获取当前进度"""
31     return "当前进度为:" + str(int(100*n/t)) + "%"
32
33
34 #———————————————————————————————————| 程序开始 |—————————————————————————————————
35 #确定图书大类
36 cate = {"3273":"历史","3279":"心理学","3276":"政治军事","3275":"国学古籍","3274":"哲学宗教","3277":"法律","3280":"文化","3281":"社会科学"}
37
38 #断点续抓
39 num1 = input("bookid:")
40 num2 = input("pagenumber:")
41
42 #生成图书大类链接,共需17355*20 = 347100次
43 totaltimes = 347100.0
44 nowtimes = 0
45
46 #开启webdirver的PhantomJS对象
47 #driver = webdriver.PhantomJS()
48 driver = webdriver.Ie(‘C:\Python27\Scripts\IEDriverServer‘)
49 #driver = webdriver.Chrome(‘C:\Python27\Scripts\chromedriver‘)
50
51 #读出Mysql中的评论页面,进行抓取
52 # 连接数据库 
53 try:
54     conn = MySQLdb.connect(host=‘localhost‘,user=‘root‘,passwd=‘‘,db=‘jd‘)
55 except Exception, e:
56     print e
57     sys.exit()
58
59 # 获取cursor对象
60 cursor = conn.cursor()
61 sql = "SELECT * FROM booknew ORDER BY pagenumber DESC"
62 cursor.execute(sql)
63 alldata = cursor.fetchall()
64
65 flag = 0
66 flag2 = 0
67
68 # 如果有数据返回就循环输出,http://club.jd.com/review/10178500-1-154.html
69 if alldata:
70     for rec in alldata:
71         #rec[0]--bookid,rec[1]--cateid,rec[2]--pagenumber
72         if(rec[0] != str(num1) and flag == 0):
73             continue
74         else:
75             flag = 1
76         for p in range(num2,rec[2]):
77             if(flag2 == 0):
78                 num2 = 0
79                 flag2 = 1
80             p += 1
81             link = "http://club.jd.com/review/" + rec[0] + "-1-" + str(p) + ".html"
82             #抓网页
83             driver.get(link)
84             html = driver.page_source
85             #抓评论
86             buydate = catchDate(html)
87             #写入数据库
88             for z in buydate:
89                 sql = "INSERT INTO ljj (id, cateid, bookid, date) VALUES (NULL, ‘" + rec[0] + "‘,‘" + rec[1] + "‘,‘" + z[0] + "‘);"
90                 try:
91                     cursor.execute(sql)
92                 except Exception, e:
93                     print e
94             conn.commit()
95         print getTimes(nowtimes,totaltimes)
96
97 driver.quit()
98 cursor.close()
99 conn.close()

原文地址:https://www.cnblogs.com/huohuohuo1/p/9175091.html

时间: 2024-10-28 04:26:28

利用Python批量抓取京东评论数据的相关文章

[python]利用selenium模拟用户操作抓取天猫评论数据

准备: python3.5 安装selenium包 第一种方法: cmd里输pip install selenium,但是经常报错 第二种方法: 下载安装包-cmd进入解压路径-python setup.py install-报错permission denied-右键安全更改报错文件夹权限为完全控制-再次安装成功unknown error: unable to discover open pages-下载chromedriver放在环境变量目录下测试自动打开百度时提示"您使用的是不受支持的命令

Python批量抓取商品数据

(批量抓取pids.csv文件中商品数据)pids.csv 文件内容:pid733641371225907336415 报错: 解决后代码: 原文地址:http://blog.51cto.com/2290153/2125131

利用Python来爬取“吃鸡”数据,为什么别人能吃鸡?

首先,神装镇楼背景 最近老板爱上了吃鸡(手游:全军出击),经常拉着我们开黑,只能放弃午休的时间,陪老板在沙漠里奔波. 上周在在微信游戏频道看战绩的时候突发奇想,是不是可以通过这个方式抓取到很多战斗数据,然后分析看看有什么规律.秀一波战绩,开黑情况下我们团队吃鸡率非常高,近100场吃鸡次数51次简单评估了一下,觉得可行,咱就开始. Step 1 分析数据接口 第一步当然是把这些战绩数据采集下来,首先我们需要了解页面背后的故事.去看看页面是如何获取战斗数据的. 使用Charles抓包 抓包实现 在M

一篇文章教会你使用Python定时抓取微博评论

[Part1——理论篇] 试想一个问题,如果我们要抓取某个微博大V微博的评论数据,应该怎么实现呢?最简单的做法就是找到微博评论数据接口,然后通过改变参数来获取最新数据并保存.首先从微博api寻找抓取评论的接口,如下图所示. 但是很不幸,该接口频率受限,抓不了几次就被禁了,还没有开始起飞,就凉凉了. 接下来小编又选择微博的移动端网站,先登录,然后找到我们想要抓取评论的微博,打开浏览器自带流量分析工具,一直下拉评论,找到评论数据接口,如下图所示. 之后点击“参数”选项卡,可以看到参数为下图所示的内容

Python爬虫抓取微博评论

第一步:引入库 import time import base64 import rsa import binascii import requests import re from PIL import Image import random from urllib.parse import quote_plus import http.cookiejar as cookielib import csv import os 第二步:一些全局变量的设置 comment_path = 'comme

基于python的scrapy爬虫抓取京东商品信息

这是上的第二节爬虫课程的课后作业:抓取京东某类商品的信息,这里我选择了手机品类. 使用scrapy爬虫框架,需要编写和设置的文件主要有phone.py , pipelines.py , items.py , settings.py , 其中主要编写的是前两个文件,最后一个文件主要设置破解反爬方法. phone.py编写程序如下: import scrapy from scrapy.http import Request from jd_phone.items import JdPhoneItem

微信好友大揭秘,使用Python抓取朋友圈数据,通过人脸识别全面分析好友,一起看透你的“朋友圈”

微信:一个提供即时通讯服务的应用程序,更是一种生活方式,超过数十亿的使用者,越来越多的人选择使用它来沟通交流. 不知从何时起,我们的生活离不开微信,每天睁开眼的第一件事就是打开微信,关注着朋友圈里好友的动态,而朋友圈中或虚或实的状态更新,似乎都在证明自己的"有趣",寻找那份或有或无的存在感. 有人选择在朋友圈记录生活的点滴,有人选择在朋友圈展示自己的观点.有时我们想去展示自己,有时又想去窥探着别人的生活,而有时又不想别人过多的了解自己的生活,或是屏蔽对方,或是不给对方看朋友圈,又或是不

手把手教你使用Python抓取QQ音乐数据!

[一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐数据(第二弹)我们实现了获取 QQ 音乐指定歌曲的歌词和指定歌曲首页热评. 通过手把手教你使用Python抓取QQ音乐数据(第三弹)我们实现了获取更多评论并生成词云图. 此次我们将将三个项目封装在一起,通过菜单控制爬取不同数据. [二.需要的库] 主要涉及的库有:requests.openpyxl.

Hibernate学习---第十一节:Hibernate之数据抓取策略&批量抓取

1.hibernate 也可以通过标准的 SQL 进行查询 (1).将SQL查询写在 java 代码中 /** * 查询所有 */ @Test public void testQuery(){ // 基于标准的 sql 语句查询 String sql = "select * from t_person"; // 通过 createSQLQuery 获取 SQLQuery,而 SQLQuer 是 Query的子类 SQLQuery query = session.createSQLQue