[過去ログ] くだすれPython(超初心者用) その46【Ruby禁止】 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
483: デフォルトの名無しさん [] 2020/02/06(木) 09:04:06.46 ID:GAMNd4TG(1/9) AAS
BeautifulSoupとかいうのを使ってGoogle画像検索結果をスクレイピングしてたけど
多分Google検索結果あたりが変わってとれなくなりました。
html.select('.rg_meta.notranslate')
このあたりの仕様が多分変更になったと思うんですが
うまく取得できる方法を教えて頂けたら有難いです…。よろしくお願い致します;。
485: デフォルトの名無しさん [] 2020/02/06(木) 09:14:57.47 ID:GAMNd4TG(2/9) AAS
>>484
申し訳ありません…
でしたら、クラスの指定と思うのですがそのあたりのコツと言いますか
間違いなく出来る方法あたりをお教頂けましたら…
現在 .rg_i というクラスはあるのですが
これをもう、 .rg_i. src img href a そのた思いつくものを
やれるだけ順番を前後させても、半日以上経過しても進めず
本当に苦しくなってきてしまっておりまして、すみません…。
487: デフォルトの名無しさん [] 2020/02/06(木) 09:37:38.28 ID:GAMNd4TG(3/9) AAS
>>486
すみません…。自分は前後を変えたり何度やっても
空といいますか画像が取得できないので、
お教頂けたら、ありがたいです…。
488: デフォルトの名無しさん [] 2020/02/06(木) 10:35:45.43 ID:GAMNd4TG(4/9) AAS
>>486
すみませんです…どうやって検索したらよいかお教え頂けましたら…
491: デフォルトの名無しさん [] 2020/02/06(木) 11:27:31.04 ID:GAMNd4TG(5/9) AAS
有難うございます。
すみません、keywordは山として以下のようにして取得を目指しており
それで<!-- --> でほしいのですが 以下の表記方法ではだめでしょうか。
urlKeyword = parse.quote(keyword)
url = 'https://www.google.com/search?hl=jp&q=' + urlKeyword + '&btnG=Google+Search&tbs=0&safe=off&tbm=isch'
headers = {"User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/10.0",}
request = req.Request(url=url, headers=headers)
page = req.urlopen(request)
html = page.read().decode('utf-8')
html = bs4.BeautifulSoup(html, "html.parser")
elems = html.select('.rg_meta.notranslate')
この最後の.rg_meta.notranslate のあたりで目的の画像を一つ一つ取り出せなくなっていると分析しています。
492(3): デフォルトの名無しさん [] 2020/02/06(木) 11:28:23.61 ID:GAMNd4TG(6/9) AAS
一昨日くらいまでは取れておりました。
現在も、 ではグーグル画像検索そのものが取れてないとか何かブロックされているのか?と言うと
elems= の前に 例えば print(html) とするとGoogle画像検索結果の画面全体は取れているのです。
しかしそれは全体像なので、個々の1枚1枚を取得してphpmyadminに格納したり、とかそれが狙いであるので
elems = のところでつまずいてはやはりまずい具合です。
そして目的の画像検索結果、 例えば 山で検索して
<!--
<img class="rg_i Q4LuWd tx8vtf"
src="data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="
data-iid="0" data-iurl="https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcRFWZJ-G8GOvPEcPPJZqy_IqLTMokKOyW_VAdDON2S_9V6cnOQZ" jsname="Q4LuWd"
alt="「山」の画像検索結果" />
-->
↑この要素が欲しいものです
ここのimgのclassにrg_i というものがありこれはヒントの一つ?かと想像したりするのですが
data-iurl= のこれが取得したい画像のURLだと思います。 URLで hrefでなく こういう書式で表示されているのだな、と思いますが
ここを取得したいと思っております。
すみませんが;宜しくお願い致します;
493: デフォルトの名無しさん [] 2020/02/06(木) 11:42:27.42 ID:GAMNd4TG(7/9) AAS
>>490
左様でございますか。一応使ったことはありますが
ちゃんと使いこなせるのかどうか…うーむ…
500(1): デフォルトの名無しさん [] 2020/02/06(木) 13:30:53.32 ID:GAMNd4TG(8/9) AAS
>>495
firefoxのUA、修正します。すみませんでした;
そして、以下でやってみましたが
elems = html.select('img[data-iurl]')
なぜか出来ずに、うむむ…と申し訳ありません、さらに研究してみますが…
503: デフォルトの名無しさん [] 2020/02/06(木) 16:58:26.66 ID:GAMNd4TG(9/9) AAS
一応成功致しました!
>>500
結果としてelems = html.select('img[data-iurl]')
で、このelemsとしては取れていたようです!
ここは元々elems = html.select('.rg_meta.notranslate')
であったと最初に出しましたが このelemsを
↓(適当〜8行くらい)
------------------
for ele in elems:
eledict = dict()
ele = ele.contents[0].replace('"','').split(',')
for e in ele:
num = e.find(':')
eledict[e[0:num]] = e[num+1:]
imageURL = eledict['ou']・・・・・
--------------
というような感じで使っていたのですが img[data-iurl]の今回? 目的のurl自体はスムーズに取れていたようで
for ele in elems:
imageURL = ele.get('data-iurl')
今回elemsのeleを ele.get('data-iurl') で、1枚づつ取ることができたようでした。
有難うございました!
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.038s