質問編集履歴
3
コメントのように訂正したが、同じエラーになります。
test
CHANGED
File without changes
|
test
CHANGED
@@ -24,7 +24,8 @@
|
|
24
24
|
|
25
25
|
```python
|
26
26
|
# 1.動的サイトにアクセス
|
27
|
-
|
27
|
+
url = "https://www.xxx/aaa/page"
|
28
|
+
driver.get(url)
|
28
29
|
|
29
30
|
# クリック前のハンドルリスト
|
30
31
|
handles_befor = driver.window_handles
|
@@ -72,7 +73,8 @@
|
|
72
73
|
img = driver.find_element(By.XPATH,'//*[@id="aaa"]/p/img')
|
73
74
|
src = img.get_attribute('src')
|
74
75
|
#imgurlをダウンロード
|
75
|
-
if src:
|
76
|
+
if src:
|
77
|
+
src = urljoin(url, src)
|
76
78
|
# 画像のバイト列取得
|
77
79
|
img_content = requests.get(src).content
|
78
80
|
# 画像に変換
|
2
前提を追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
あるサイトをスクレイピングしているのですが、その中で画像もダウンロードさせるような処理を入れたいのですが、img src="" のsrcの中身がxxx.jsp?key=atai となっているためダウンロード出来ません。
|
4
4
|
ダウンロードは不可能でしょうか?何か方法はありますか?
|
5
|
+
|
6
|
+
ちなみに出来れば、ダウンロードせずに画像認識させて読み取った文字を文字列としてcsvに書き込む処理をしたいです。
|
7
|
+
個別ではPCに手動で画像を保存したものを画像認識させて、文字列として返すことに成功しております。
|
8
|
+
|
5
9
|
|
6
10
|
### 実現したいこと
|
7
11
|
|
1
コードを追加しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -19,6 +19,51 @@
|
|
19
19
|
### 該当のソースコード
|
20
20
|
|
21
21
|
```python
|
22
|
+
# 1.動的サイトにアクセス
|
23
|
+
driver.get("https://www.xxx/aaa/page")
|
24
|
+
|
25
|
+
# クリック前のハンドルリスト
|
26
|
+
handles_befor = driver.window_handles
|
27
|
+
|
28
|
+
# ドロップダウンを選択する
|
29
|
+
# 分類
|
30
|
+
genres = driver.find_element(By.NAME,'searchCategory')
|
31
|
+
select1 = Select(genres)
|
32
|
+
all_options = select1.options
|
33
|
+
count = len(all_options)
|
34
|
+
|
35
|
+
|
36
|
+
# [検索]ボタン押す
|
37
|
+
driver.find_element(By.ID,'search').click()
|
38
|
+
# メーカー毎の商品リストをfor文で回しながら取得
|
39
|
+
pages = driver.find_element(By.XPATH, '//*[@id="fm"]/div[2]/span[2]')
|
40
|
+
# ページャー数分、回す
|
41
|
+
pagenum = pages.text
|
42
|
+
for num in range(int(pagenum)):
|
43
|
+
# tbodyの中身取得
|
44
|
+
tbody = driver.find_element(By.XPATH,'//*[@id="xxx_list"]/table/tbody')
|
45
|
+
trlist = tbody.find_elements(By.TAG_NAME,'tr')
|
46
|
+
|
47
|
+
trnum = str(1)
|
48
|
+
for tr in trlist:
|
49
|
+
tdlist = tr.find_elements(By.TAG_NAME,'td')
|
50
|
+
trtext = []
|
51
|
+
for td in tdlist:
|
52
|
+
test = td.text
|
53
|
+
if(test == '選ぶ'):
|
54
|
+
break
|
55
|
+
trtext.append(test)
|
56
|
+
# 1アイテム毎にCSVに書き込む
|
57
|
+
filename = "xxx.csv"
|
58
|
+
with open(filename, mode="a", encoding="utf-8") as f:
|
59
|
+
trs = ','.join(trtext)
|
60
|
+
f.write(trs)
|
61
|
+
# 改行コード
|
62
|
+
f.write('\n')
|
63
|
+
time.sleep(2)
|
64
|
+
#[選ぶ]をクリック
|
65
|
+
imgxpath = '//*[@id="result_list"]/table/tbody/tr['+ trnum +']/td[5]/a'
|
66
|
+
driver.find_element(By.XPATH, imgxpath).click()
|
22
67
|
# 画像URL取得
|
23
68
|
img = driver.find_element(By.XPATH,'//*[@id="aaa"]/p/img')
|
24
69
|
src = img.get_attribute('src')
|