위와 같은 내용으로 크롤링을 진행하였고 내가 맡은 부분은 중앙일보와 경향이었다.
중앙일보는 페이지가 일관되어있고 섹션, 기간 등등 설정값을 조절 할 수 있어 매우 편리했는데, 경향은 아니었다 ㅠㅠ
뿐만 아니라 경향은 2000.08월부터 자료가 존재하여 그 이전 데이터는 찾을 수가 없었다..
경향이 날 너무 괴롭혀서 머리가 아프다. 내가 바보인것도 맞지만🤮
누군가 내 글을 읽고 좀 편하게 자료를 추출할 수 있었으면 좋겠다..
특히 나는 [Errno 54] Connection reset by peer 이 오류에서 한참 헤맸는데 ㅠㅠ 그냥 예외처리하면 되는거였다
2번 자료에 그렇게 진행한 코드를 작성해놓았다. (웹 크롤링과 스크레핑 대해서 공부해야겠다는 생각......)
1. 링크만 추출하는 방법
위 자료에 기사까지 가져오는게 2번 방법이다.
headers 추가 (방법은 https://pickwon.tistory.com/70 참고)
headers = 헤더추가
target = ['문화','정치','사회','경제']
section_list=[]
url_list = []
for page in tqdm(range(366,2971)): #365-2970
url = f'https://search.khan.co.kr/search.html?stb=khan&dm=0&q=%EC%B2%AD%EB%85%84&pg={page}&sort=1'
req = requests.get(url,headers = headers)
soup = BeautifulSoup(req.content, 'html.parser')
for contents_type in soup.select('dd.date > strong'):
if contents_type.get_text() in target:
section_list.append(contents_type.get_text()) #섹션 추가
link1 = contents_type.parent.parent
link2 = link1.select_one('dt > a')
url_list.append(link2['href'])
for u in url_list :
print(u, end = '\n')
2. 기사 전문 가져오기 (링크 + )
🥑 자료를 가져오는 순서!
1. 원하는 섹션(target)의 링크만 추출
2. 기사 전문, 제목, 날짜 등의 텍스트를 추출
3. list 범위 및 소켓 오류가 나면 예외 처리를 해준다.
4. csv파일로 저장한다.
이제 끝이다!!!! 경향 안녕!!! 다시는 보지말자 ㅠㅠ
'개발 > ETC' 카테고리의 다른 글
[python] 문자열 _ n-size 나누기 (0) | 2022.03.05 |
---|---|
[python] zsh: command not found: conda 에러 해결 (0) | 2022.02.06 |
[python] 중앙일보 크롤링 (0) | 2021.06.27 |
[python] [Errno 54] Connection reset by peer 크롤링 (0) | 2021.06.27 |
[python] 여러개의 엑셀 파일 CSV 변환 ( 한번에 불러오기 ) (0) | 2021.06.15 |