WEBスクレイピングができない

投稿者: Anonymous

PythonでWEBページをスクレイピングし、あるサイトから店名と住所情報を取得したいと考えています。
コラボラトリー環境で以下のコードを試してみたのですが、情報を取得できません。
コードのどこがいけないのかスクレイピングに詳しい方教えていただけませんでしょうか?

!pip install geocoder
import requests
import pandas as pd
from bs4 import BeautifulSoup
from google.colab import files
import os
import geocoder
from time import sleep
from google.colab import files

url1 = "https://www.aeon.com/store/list/%E7%B7%8F%E5%90%88%E3%82%B9%E3%83%BC%E3%83%91%E3%83%BC/%E3%82%A4%E3%82%AA%E3%83%B3%E3%83%BB%E3%82%A4%E3%82%AA%E3%83%B3%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB/p_"
url2 = "/?q=aeoncom"
cols = ['store_name','address','latlon']
df = pd.DataFrame(index=[],columns=cols)

for i in range(1,22):
  response = requests.get(url1 + str(i) + url2).text
  soup = BeautifulSoup(response, 'html.parser')

  for tag in soup.find_all('div', class_="storeInfo"):
    atag_stname = tag.find('a', class_="storeName")
    atag_adname = tag.find('span', class_="address")
    latlon = geocoder.arcgis(atag_adname)

    record = pd.Series([atag_stname.text,atag_adname.text,latlon.latlng],index=df.columns)
    df = df.append(record,ignore_index=True)
    sleep(2)
df.to_csv("df_ion.csv")
files.download('df_ion.csv')

解決

User-Agent を設定すると期待通りに動作する様です。

headers = {
  'User-Agent':
  'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100'
}
              :

for i in range(1,22):
  response = requests.get(url1 + str(i) + url2, headers=headers).text
              :

print(df)

   store_name               address                                    latlon
0    イオン札幌麻生店    北海道札幌市北区北39条西4-1-5    [43.10729026007806, 141.3397210097591]
1    イオン札幌琴似店     北海道札幌市西区琴似2条4-2-2   [43.07673248139989, 141.30288212620786]
              :
回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *