質問編集履歴

1

コードについて

2018/01/09 21:59

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -34,132 +34,6 @@
34
34
 
35
35
  #trial.py
36
36
 
37
- #!/usr/bin/env python
38
-
39
- # -*- coding: utf-8 -*-
40
-
41
- from selenium import webdriver
42
-
43
- from selenium.common.exceptions import NoSuchElementException
44
-
45
- from selenium.webdriver.common.keys import Keys
46
-
47
- from sys import exit
48
-
49
- from time import sleep
50
-
51
- import argparse
52
-
53
- import datetime
54
-
55
- import requests
56
-
57
- import os
58
-
59
- import urllib2
60
-
61
- import codecs, sys
62
-
63
-
64
-
65
- sys.stdout = codecs.getwriter('utf_8')(sys.stdout)
66
-
67
- sys.stdin = codecs.getreader('utf_8')(sys.stdin)
68
-
69
-
70
-
71
- DELAY_SLEEP = 1
72
-
73
- JANJAN_URL = "https://antlion.xsrv.jp/"
74
-
75
-
76
-
77
- def main():
78
-
79
- parser = argparse.ArgumentParser(description='Get asin from JANJAN_URL')
80
-
81
- parser.add_argument('--jan', nargs='+')
82
-
83
- args = parser.parse_args()
84
-
85
-
86
-
87
-
88
-
89
-
90
-
91
- products = {}
92
-
93
- for a in args.jan:
94
-
95
- for k,v in products.iteritems():
96
-
97
- driver = webdriver.PhantomJS()
98
-
99
- try:
100
-
101
-
102
-
103
- driver.implicitly_wait(DELAY_SLEEP)
104
-
105
-
106
-
107
- # JAN code
108
-
109
- driver.get(JANJAN_URL)
110
-
111
- driver.implicitly_wait(DELAY_SLEEP)
112
-
113
- elem = driver.find_element_by_xpath('//*[@id="content"]/div[1]/div/form/input[2]')
114
-
115
- elem.send_keys(a)
116
-
117
- elem = driver.find_element_by_xpath('//*[@id="content"]/div[1]/div/form/input[3]')
118
-
119
- elem.click()
120
-
121
- elems = driver.find_elements_by_xpath('//*[@id="content"]/div[2]/div[5]/ul/li')
122
-
123
- for e in elems:
124
-
125
- desc = e.get_attribute('textContent')
126
-
127
- if desc.startswith("ASIN"):
128
-
129
- v['asin'] = desc
130
-
131
-
132
-
133
- except NoSuchElementException:
134
-
135
- print "not available"
136
-
137
- except Exception as e:
138
-
139
- print e
140
-
141
- driver.close()
142
-
143
- exit(1)
144
-
145
-
146
-
147
- driver.close()
148
-
149
-
150
-
151
- for v in products.values():
152
-
153
- print v['asin']
154
-
155
-
156
-
157
-
158
-
159
- if __name__ == "__main__":
160
-
161
- main()
162
-
163
37
 
164
38
 
165
39
  ```