阿里巴巴python函数 阿里python教程( 三 )


第一步、查看网页,确定抓取范围 。我们打开阿里巴巴采购首页,我们发现阿里巴巴提供了厂商的搜索接口,如下所示:
第二步、我们试着搜索“化工”,查看得到的结果 , 如下:
第三步、我们可以看到,我们要的基本信息都存在了,但是联系方式没有,我们任意打开一个厂商的页面,可以看到“联系”这个导航栏项目 , 点击联系 , 就可以看到厂商的联系方式 , 我们在将注意力放到网址url上,我们可以看到 , 联系这个页面的URL呈现规律性 , 如,并且联系电话的位置是最前的 , 这极大地方便了我们采集我们想要的信息,如下:
第四步、啰嗦了那么多 , 直接开始我们的代码:
首先使用python的selenium包打开一个Firefox浏览器窗口:
1
2
3
4
5
6
7
8
9
#! /usr/bin/env python
#coding:utf-8
from selenium import webdriver
import sys
# 解决中文报错的问题
reload(sys)
sys.setdefaultencoding('utf-8')
driver = webdriver.Firefox()
以上程序就可以打开Firefox浏览器窗口,并且打开的浏览器窗口对象为driver , 接下来我们模拟登录,找到阿里巴巴模拟登录的地址为,我们通这个地址模拟登录,并通过selenium的find_element_by_name方法获取网页中的DOM节点,有学过JavaScript的同学应该就会了解DOM节点,具体的代码如下:
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
url = '
k.635.1998096057.d1'
loginUrl = 't=trueredirect_url=
3Dlogin_target_is_blank_1688%26tracelog%3Dmember_signout_signin_s_reg'
driver = webdriver.Firefox()
time.sleep(3)
driver.get(loginUrl)
time.sleep(5)
driver.find_element_by_name("TPL_username").send_keys('这里是你的淘宝账号')
driver.find_element_by_name("TPL_password").send_keys('这里是你的淘宝密码')
driver.find_element_by_name("TPL_password").send_keys(Keys.ENTER)
time.sleep(5)
driver.get(url)
模拟登录成功后我们让页面自动跳转到我们刚才搜索“化工”厂商的那个页面,其中使用了time包里的sleep函数,是为了防止在网速较差的时候,网页加载速度较慢,源码还未下载完毕就执行查找节点的命令导致程序运行失败 。接下来我们要做的是查找厂商的主页并找到其联系方式,并且发现厂商找到的结果共有100页,在这里,为了使用方便,我们直接使用for循环来模拟点击下一页进行采集 。具体的所有源代码如下所示:
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

推荐阅读