Skip to content

Instantly share code, notes, and snippets.

@mr-yoo
Created November 18, 2019 16:04
Show Gist options
  • Save mr-yoo/8dbc120845b54d30ec44a038720859fd to your computer and use it in GitHub Desktop.
Save mr-yoo/8dbc120845b54d30ec44a038720859fd to your computer and use it in GitHub Desktop.
LG전자 식단 스크래핑 코드
import requests
import time
import pprint
from bs4 import BeautifulSoup
def download_html(bid):
url = f"https://appmobile.ourhome.co.kr/front/menu/todayMenuSelectList.do?mi=R030010&busiplcd={bid}"
headers = {
"Cookie": "user_id=95hGdlCULG8/s5IJcB6YXA==;"
}
return requests.get(url, headers=headers).text
def parsing_menu_table(html):
oneday_data = [[] for x in range(4)]
# load HTML
soup = BeautifulSoup(html, 'html5lib')
# 0:아침 / 1:점심 / 2:저녁 / 3:야식
for i in range (0, 4):
meal_data = []
selector = f"#menu{i+1}_c > .textShadowBox"
htmls_of_each_catering_companies = soup.select(selector)
for html in htmls_of_each_catering_companies:
catering_data= {}
# catering company
selector = ".menuTitle"
name_of_catering_company = html.select(selector)[0].text
catering_data[name_of_catering_company] = [];
# main menu
selector = ".menuTitle2"
main_menu = html.select(selector)
if len(main_menu) == 0:
main_dish = "-"
else:
main_dish = main_menu[0].text.strip()
catering_data[name_of_catering_company].append(main_dish)
# side menu
selector = ".sub"
side_menu = html.select(selector)
if len(side_menu) > 0 :
catering_data[name_of_catering_company].append(
"/".join([x.text for x in side_menu]))
meal_data.append(catering_data)
if len(meal_data) > 0:
oneday_data[i] = meal_data
return oneday_data
bids = ["FA0GA", "FA116", "FA117", "FA126", "FA12B", "FA12V", "FA13A", "FAG92",
"FAG97", "FAH71", "FAM62", "FAM80", "FAM97", "FAN08", "FAP51", "FAP52",
"FAP53", "FAQ84"]
for bid in bids[:3]:
html = download_html(bid)
result = parsing_menu_table(html)
pprint.pprint(result)
print("-" * 20)
time.sleep(1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment