강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của 7878rrr1515
7878rrr1515

câu hỏi đã được viết

Giới thiệu lập trình và sử dụng tự động hóa công việc cho nhân viên văn phòng

Web scraping selenium

에러가 자꾸 뜨는데 코드에 문제가 있나요 ㅠㅠ

Viết

·

327

0

from bs4 import BeautifulSoup
import requests
import pandas as pd
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.suppor import expected_conditions as EC
from selenium.webdriver.common.by import By

browser = webdriver.Chrome('chromdriver')
bills = list()

for i in range(1, 2):
response = requests.get('http://watch.peoplepower21.org/index.php?mid=Euian&show=1&page={}&title=&rec_num=15&lname=&sangim=&bill_result='.format(i))
html = response.text


soup = BeautifulSoup(html, 'lxml')
body = soup.body

div_ea_list = body.find(id='ea_list')
table = div_ea_list.table
tbody = table.tbody

lines = tbody.find_all('tr')

for line in lines:
td_list = line.find_all('td')
bills.append(
[td_list[0].text, td_list[1].text, td_list[2].text, td_list[3].text, td_list[4].text]
)
bill_url = 'http://watch.peoplepower21.org' + td_list[1].a.get('href')

print(bill_url)

browser.get(bill_url)
browser.implicitly_wait(5)
WebDriverWait(browser, 20).until(EC.presence_of_element_located(
(By.ID, 'collapseTwo')

))

html = browser.page_source
soup = BeautifulSoup(html, 'lxml')

body = soup.body
proposers = body.find(id='collapseTwoe').text.replace('','')

bills.append(
[td_list[0].text, td_list[1].text, td_list[2].text, td_list[3].text, td_list[4].text]
)



df = pd.DataFrame(bills, columns=['제안일', '의안명', '발의자명단','상임위','상태' ])
df.to_excel('bill.xlsx')

browser.quit()
python

Câu trả lời 2

0

7878rrr1515님의 프로필 이미지
7878rrr1515
Người đặt câu hỏi

감사합니다.

0

SungYong Lee님의 프로필 이미지
SungYong Lee
Người chia sẻ kiến thức

안녕하세요. 혹시 이 문제 해결하셨나요? 오타가 중간중간 보이네요. 

6번째 줄에 

from selenium.webdriver.suppor import expected_conditions as EC

이 부분. suppor 이 아니라 support 입니다. 

그리고 9번째 줄에 

browser = webdriver.Chrome('chromdriver')

이 부분. chromdriver가 아니라 chromedriver 입니다. 

이렇게 고치고 나면, 17번째 줄에서 아래와 같은 에러메세지가 뜰 수 있습니다. 

Traceback (most recent call last):

  File "C:/github/python_tutorial_for_salarymen/hk.py", line 17, in <module>

    soup = BeautifulSoup(html, 'lxml')

  File "C:\github\python_tutorial_for_salarymen\venv\lib\site-packages\bs4\__init__.py", line 208, in __init__

    % ",".join(features))

bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library?

이 문제는 터미널에서

pip install lxml 

명령어를 입력해서 해결할 수 있습니다. lxml 모듈이 깔리지 않았다는 뜻이거든요 

17번째 줄을 통과하고 나니 46번째 줄에 오타가 있습니다. 

proposers = body.find(id='collapseTwoe').text.replace('','')

여기서 collapseTwoe는 오타인 것 같죠? collapseTwo로 수정합니다. 

혹시 openpyxl은 설치하셨나요? 그렇지 않다면 파일 저장할 때 문제가 생길 수 있습니다. 이 경우 

pip install openpyxl

로 설치해주세요. 

에러 메세지를 확인하면서 어디서 문제가 생겼는지 확인하시면, 더 빠르게 파이썬을 습득하실 수 있을겁니다. 강의 막바지까지 들으셨는데, 끝까지 화이팅하세요~!

Hình ảnh hồ sơ của 7878rrr1515
7878rrr1515

câu hỏi đã được viết

Đặt câu hỏi