前面学习的爬虫的方法,马上利用到实战中,抓取某网站的信息。使用bs、request的方法进行数据的抓取。主要分享一些实战的经验和总结,此文章抓取数据用于分享。(注意不要乱爬取数据用于商业用途谋私,遵纪守法向来是我们应当守则义务。)
一、首先request的方法和BeautifulSoup的方法架构必须熟悉,方法也懂基本的使用。
二、代码的架构是先定义一个函数,在函数里面传送抓取的网站的url,使用requests方法抓取到网站内部的信息,获取网站的源码。如果感兴趣的同学可以打印去html的参数,看看源码的架构和数据。
三、使用bs中select方法抓取网站源码节点的数据、bs中Select的方法要熟悉。
四、用遍历的for循环抓取每个节点的标签,比如p、a、span的标签属性下面的数值。
(如果有人知道的话,可以告诉我为什么<span class="new_lable1">****</span> ==$0 ,****的值抓不出来,试了正则和bs方法都不行。我果断放弃了。)
注意:抓取的源码可能会时时变化,使用select的方法抓取源码数据时,记得打印出来查看是否含有数据,如果没有,则需要调整代码架构。有几次前一天可以抓取到数据源码,但是隔一天就不行了。
五、增加分隔符和文字,将整个代码结果展现好一些。(后期有时间和精力在将数据存入数据库或者使用panda、scipy来做表格。)
谢谢关注。
参考文献:Python网络爬虫入门篇 - z寒江雪 - 博客园
案例展示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157import requests import urllib.request from bs4 import BeautifulSoup def get_html(url): headers = { 'User-Agent': 'Mozilla/5.0(Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36(KHTML, like Gecko) Chrome/52 .0.2743. 116 Safari/537.36' } # 模拟浏览器访问 response = requests.get(url, headers=headers) # 请求访问网站 html = response.text # 获取网页源码 return html # 返回网页源码 get_html('http://search.dangdang.com/?key=%D6%D8%B7%B5%C0%C7%C8%BA%B1%B3%BA%F3%B5%C4%B9%CA%CA%C2&act=input') soup = BeautifulSoup(get_html('http://search.dangdang.com/?key=%D6%D8%B7%B5%C0%C7%C8%BA%B1%B3%BA%F3%B5%C4%B9%CA%CA%C2&act=input'), 'lxml') # 初始化BeautifulSoup库,并设置解析器 text = soup.select('#search_nature_rg > ul.bigimg > li > a ')#只定为到末级,中间不算。 content3 = soup.select('#search_nature_rg > ul > li > div.lable_label > span.new_lable ')#定义自营门店,由于span标签特殊。抓取不到span标签的特殊值。 content = soup.select('#search_nature_rg > ul.bigimg > li > a > img')#定义图片路径 content2 = soup.select('#search_nature_rg > ul.bigimg > li > p.search_star_line > a')#店铺商品评论数 content4 = soup.select('#search_nature_rg > ul > li > p.search_shangjia > a')#店铺名字 price_number1 = soup.select('#search_nature_rg > ul > li.line1 > p.price > span')#图书价格 price_number2 = soup.select('#search_nature_rg > ul > li.line2 >div.ebook_buy>p>span')#图书价格 price_number3 = soup.select('#search_nature_rg > ul > li.line3 >p.price>span')#图书价格,只有销售价格 price_number4 = soup.select('#search_nature_rg > ul > li.line4 > p.price > span')#图书价格 price_number5 = soup.select('#search_nature_rg > ul > li.line5 > p.price > span')#图书价格 price_number6 = soup.select('#search_nature_rg > ul > li.line6 > p.price > span')#图书价格 price_number7 = soup.select('#search_nature_rg > ul > li.line7 > p.price > span')#图书价格 price_number8 = soup.select('#search_nature_rg > ul > li.line8 > p.price > span')#图书价格 price_number9 = soup.select('#search_nature_rg > ul > li.line9 > p.price > span')#图书价格 price_number10 = soup.select('#search_nature_rg > ul > li.line10 > p.price > span')#图书价格 print("抓取商铺的详情页和标题:") for n in text: link = n.get('href') title = n.get('title') print("图书详情页和标题:",link,title) print("抓取图片的地址:") for n in content: pic = n.get('src') tag = n.text#抓取标签<a> print("图片地址:",pic) print("抓取商品评论数:") for n in content2: tag=n.text if tag == 0: print("此商店无评论人") else: print("评论数:", tag) print("店铺种类:") for n in content3: name=n.text print (name) if name == 1: print("自营店面")#自营店的值抓不到。所以一直呈现私营店面 else: for i in content4: name = i.text print("私营图书:",name) print("店铺销售价格及折扣:") a=[] for n in price_number1: span=n.text a.append(span) print("第1家店铺销售情况:") print("销售价格:",a[0]) print("原来价格:",a[1]) print("打折比例:",a[2]) b=[] for n in price_number2: span=n.text b.append(span) print("第2家店铺销售情况:") print("销售价格:",b[0]) # print("原来价格:",b[1]) # print("打折比例:",b[2]) c=[] for n in price_number3: span=n.text c.append(span) print("第3家店铺销售情况:") print("销售价格:",c[0]) print("原来价格:",c[1]) # print("打折比例:",c[2]) d=[] for n in price_number4: span=n.text d.append(span) print("第4家店铺销售情况:") print("销售价格:",d[0]) print("原来价格:",d[1]) print("打折比例:",d[2]) e=[] for n in price_number5: span=n.text e.append(span) print("第5家店铺销售情况:") print("销售价格:",e[0]) print("原来价格:",e[1]) print("打折比例:",e[2]) f=[] for n in price_number6: span=n.text f.append(span) print("第6家店铺销售情况:") print("销售价格:",f[0]) print("原来价格:",f[1]) print("打折比例:",f[2]) g=[] for n in price_number7: span=n.text g.append(span) print("第7家店铺销售情况:") print("销售价格:",g[0]) print("原来价格:",g[1]) print("打折比例:",g[2]) h=[] for n in price_number8: span=n.text h.append(span) print("第8家店铺销售情况:") print("销售价格:",h[0]) print("原来价格:",h[1]) print("打折比例:",h[2]) i=[] for n in price_number9: span=n.text i.append(span) print("第9家店铺销售情况:") print("销售价格:",i[0]) print("原来价格:",i[1]) print("打折比例:",i[2]) j=[] for n in price_number10: span=n.text j.append(span) print("第10家店铺销售情况:") print("销售价格:",j[0]) print("原来价格:",j[1]) print("打折比例:",j[2])
结果展示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235C:UsersAdministratorAnaconda3python.exe F:/untitled2_analysis/analysis_test/book_getdata.py 抓取商铺的详情页和标题: 图书详情页和标题: //product.dangdang.com/29343617.html 重返狼群背后的故事 图书详情页和标题: //product.dangdang.com/1901285938.html 重返狼群背后的故事 图书详情页和标题: //product.dangdang.com/29344138.html 重返狼群背后的故事(当当专享签名本) 图书详情页和标题: //product.dangdang.com/11055037207.html 重返狼群背后的故事 图书详情页和标题: //product.dangdang.com/11054207877.html 重返狼群背后的故事 一部“人狼情未了”的旷世传奇,一份难以割舍、恒以在怀的牵挂 图书详情页和标题: //product.dangdang.com/11094530971.html 重返狼群背后的故事 图书详情页和标题: //product.dangdang.com/11122830888.html 重返狼群背后的故事 一部 人狼情未了 的旷世传奇 一份难以割舍、恒以在怀的牵挂 一段探寻人与自然和谐L 图书详情页和标题: //product.dangdang.com/11070949156.html 重返狼群背后的故事 一部 人狼情未了 的旷世传奇 一份难以割舍、恒以在怀的牵挂 一段探寻人与自然和谐 图书详情页和标题: //product.dangdang.com/11109201793.html 重返狼群背后的故事 图书详情页和标题: //product.dangdang.com/11081533840.html 重返狼群背后的故事 图书详情页和标题: //product.dangdang.com/11086661163.html 重返狼群背后的故事【正版保证】 图书详情页和标题: //product.dangdang.com/11053921268.html 重返狼群背后的故事 图书详情页和标题: //product.dangdang.com/11106899051.html 【全新速发】重返狼群背后的故事 一部 人狼情未了 的旷世传奇 一份难以割舍、恒以在怀的牵挂 一段探寻人与自然和谐Z 图书详情页和标题: //product.dangdang.com/11094534101.html 重返狼群背后的故事 图书详情页和标题: //product.dangdang.com/11109684439.html 重返狼群背后的故事 李微漪红娟/ 9787573002693 图书详情页和标题: //product.dangdang.com/11080822814.html 重返狼群背后的故事 图书详情页和标题: //product.dangdang.com/11028514723.html 重返狼群背后的故事 一部 人狼情未了 的旷世传奇 一份难以割舍、恒以在怀的牵挂 一段探寻人与自然和谐 图书详情页和标题: //product.dangdang.com/11118911082.html 【全新】重返狼群背后的故事 一部 人狼情未了 的旷世传奇 一份难以割舍、恒以在怀的牵挂 一段探寻人与自然和谐L 图书详情页和标题: //product.dangdang.com/11052958360.html 重返狼群背后的故事 图书详情页和标题: //product.dangdang.com/11098533507.html 重返狼群背后的故事 一部 人狼情未了 的旷世传奇 一份难以割舍、恒以在怀的牵挂 一段探寻人与自然和谐MM 213 978 图书详情页和标题: //product.dangdang.com/11093667219.html 重返狼群背后的故事 一部 人狼情未了 的旷世传奇 一份难以割舍、恒以在怀的牵挂 一段探寻人与自然和谐 图书详情页和标题: //product.dangdang.com/11090511769.html 重返狼群背后的故事 一部 人狼情未了 的旷世传奇 一份难以割舍、恒以在怀的牵挂 一段探寻人与自然和谐 李微漪 红娟/著 图书详情页和标题: //product.dangdang.com/11083420138.html 重返狼群背后的故事 图书详情页和标题: //product.dangdang.com/11081434885.html 重返狼群背后的故事 一部 人狼情未了 的旷世传奇 一份难以割舍、恒以在怀的牵挂 一段探寻人与自然和谐 图书详情页和标题: //product.dangdang.com/11057789612.html 重返狼群背后的故事 图书详情页和标题: //product.dangdang.com/11062864767.html 重返狼群背后的故事 图书详情页和标题: //product.dangdang.com/11096513173.html 重返狼群背后的故事 一部 人狼情未了 的旷世传奇 一份难以割舍、恒以在怀的牵挂 一段探寻人与自然和谐 图书详情页和标题: //product.dangdang.com/11052954980.html 重返狼群背后的故事 图书详情页和标题: //product.dangdang.com/11123839217.html 全新重返狼群背后的故事 一部 人狼情未了 的旷世传奇 一份难以割舍、恒以在怀的牵挂 一段探寻人与自然和谐L 图书详情页和标题: //product.dangdang.com/11102125424.html 【诺拉图书】正版重返狼群背后的故事 图书详情页和标题: //product.dangdang.com/11061066098.html 正版书籍 重返狼群背后的故事 一部人狼情未了的旷世传奇 一份难以割舍恒以在怀的牵挂 一段探寻人与自然和谐之道的路径 图书详情页和标题: //product.dangdang.com/11056613528.html 重返狼群【3册】重返狼群背后的故事+重返狼群:再见格林 (被人类抚养长大的狼,回归自然将面临怎样的命 图书详情页和标题: //product.dangdang.com/11115153382.html 9787573002693 重返狼群背后的故事 李微漪红娟 著 海南出版社 枫林苑图书专营店 数量: 图书详情页和标题: //product.dangdang.com/11113675426.html 9787573002693 重返狼群背后的故事 李微漪红娟 著 海南出版社 数量: 图书详情页和标题: //product.dangdang.com/11125634888.html 重返狼群正版全3册彩绘注音版本任选城市流浪李微漪荒野求生回归家园10-12岁儿童文学动物小说让我陪你千里寻你重返狼群背后 图书详情页和标题: //product.dangdang.com/11104741576.html 重返狼群背后的故事 李微漪红娟 著 9787573002693 海南出版社【直发】 达额立减 闪电发货 80%城市次日达 图书详情页和标题: //product.dangdang.com/11094536371.html 重返狼群背后的故事 图书详情页和标题: //product.dangdang.com/11083419738.html 重返狼群背后的故事 抓取图片的地址: 图片地址: //img3m7.ddimg.cn/17/27/29343617-1_b_11.jpg 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 图片地址: images/model/guan/url_none.png 抓取商品评论数: 评论数: 1299条评论 评论数: 76条评论 评论数: 1013条评论 评论数: 1条评论 评论数: 1条评论 店铺种类: 私营图书: 龙飞东方文化图书专营店 私营图书: 一笔文化图书专营店 私营图书: 杰尼特文化图书专营店 私营图书: 昌世永乐图书专营店 私营图书: 新学图书专营店 私营图书: 翰林中天图书专营店 私营图书: 北京永贤图书专营店 私营图书: 阳光前行图书专营店 私营图书: 点溪图书专营店 私营图书: 博雅文化图书专营店 私营图书: 金楼博阅图书专营店 私营图书: 红书简图书专营店 私营图书: 荷露茗图书专营店 私营图书: 探月文化图书专营店 私营图书: 建工图书专营店 私营图书: 超创时代图书专营店 私营图书: 鼎美文化图书专营店 私营图书: 古韵书香图书专营店 私营图书: 聚知图书专营店 私营图书: 北京金楼博阅图书专营店 私营图书: 一越图书专营店 私营图书: 金瑞达图书专营店 私营图书: 天涯书友图书专营店 私营图书: 昌盛图书专营店 私营图书: 逸文图书专营店 私营图书: 瑞银图书专营店 私营图书: 诺拉图书专营店 私营图书: 玉海顺虹图书专营店 私营图书: 点溪图书专营店 私营图书: 枫林苑图书专营店 私营图书: 北京枫林苑图书专营店 私营图书: 轩然书香图书专营店 私营图书: 道正图书专营店 私营图书: 费芸图书专营店 私营图书: 京齐图书专营店 私营图书: 龙飞东方文化图书专营店 私营图书: 一笔文化图书专营店 私营图书: 杰尼特文化图书专营店 私营图书: 昌世永乐图书专营店 私营图书: 新学图书专营店 私营图书: 翰林中天图书专营店 私营图书: 北京永贤图书专营店 私营图书: 阳光前行图书专营店 私营图书: 点溪图书专营店 私营图书: 博雅文化图书专营店 私营图书: 金楼博阅图书专营店 私营图书: 红书简图书专营店 私营图书: 荷露茗图书专营店 私营图书: 探月文化图书专营店 私营图书: 建工图书专营店 私营图书: 超创时代图书专营店 私营图书: 鼎美文化图书专营店 私营图书: 古韵书香图书专营店 私营图书: 聚知图书专营店 私营图书: 北京金楼博阅图书专营店 私营图书: 一越图书专营店 私营图书: 金瑞达图书专营店 私营图书: 天涯书友图书专营店 私营图书: 昌盛图书专营店 私营图书: 逸文图书专营店 私营图书: 瑞银图书专营店 私营图书: 诺拉图书专营店 私营图书: 玉海顺虹图书专营店 私营图书: 点溪图书专营店 私营图书: 枫林苑图书专营店 私营图书: 北京枫林苑图书专营店 私营图书: 轩然书香图书专营店 私营图书: 道正图书专营店 私营图书: 费芸图书专营店 私营图书: 京齐图书专营店 私营图书: 龙飞东方文化图书专营店 私营图书: 一笔文化图书专营店 私营图书: 杰尼特文化图书专营店 私营图书: 昌世永乐图书专营店 私营图书: 新学图书专营店 私营图书: 翰林中天图书专营店 私营图书: 北京永贤图书专营店 私营图书: 阳光前行图书专营店 私营图书: 点溪图书专营店 私营图书: 博雅文化图书专营店 私营图书: 金楼博阅图书专营店 私营图书: 红书简图书专营店 私营图书: 荷露茗图书专营店 私营图书: 探月文化图书专营店 私营图书: 建工图书专营店 私营图书: 超创时代图书专营店 私营图书: 鼎美文化图书专营店 私营图书: 古韵书香图书专营店 私营图书: 聚知图书专营店 私营图书: 北京金楼博阅图书专营店 私营图书: 一越图书专营店 私营图书: 金瑞达图书专营店 私营图书: 天涯书友图书专营店 私营图书: 昌盛图书专营店 私营图书: 逸文图书专营店 私营图书: 瑞银图书专营店 私营图书: 诺拉图书专营店 私营图书: 玉海顺虹图书专营店 私营图书: 点溪图书专营店 私营图书: 枫林苑图书专营店 私营图书: 北京枫林苑图书专营店 私营图书: 轩然书香图书专营店 私营图书: 道正图书专营店 私营图书: 费芸图书专营店 私营图书: 京齐图书专营店 店铺销售价格及折扣: 第1家店铺销售情况: 销售价格: ¥21.60 原来价格: ¥48.00 打折比例: (4.5折) 第2家店铺销售情况: 销售价格: ¥21.50 第3家店铺销售情况: 销售价格: ¥21.60 原来价格: ¥48.00 第4家店铺销售情况: 销售价格: ¥36.00 原来价格: ¥48.00 打折比例: (7.5折) 第5家店铺销售情况: 销售价格: ¥33.10 原来价格: ¥48.00 打折比例: (6.9折) 第6家店铺销售情况: 销售价格: ¥45.60 原来价格: ¥48.00 打折比例: (9.5折) 第7家店铺销售情况: 销售价格: ¥37.00 原来价格: ¥48.00 打折比例: (7.71折) 第8家店铺销售情况: 销售价格: ¥45.54 原来价格: ¥48.00 打折比例: (9.49折) 第9家店铺销售情况: 销售价格: ¥26.00 原来价格: ¥47.65 打折比例: (5.46折) 第10家店铺销售情况: 销售价格: ¥29.12 原来价格: ¥48.00 打折比例: (6.07折) Process finished with exit code 0
最后
以上就是天真电脑最近收集整理的关于Python爬虫方法三部曲之二-实战训练的全部内容,更多相关Python爬虫方法三部曲之二-实战训练内容请搜索靠谱客的其他文章。
发表评论 取消回复