2017-04-03 2 views
0

나는이 문제를 해결하기위한 방법을 찾기 위해이 웹 사이트를 조사했지만, 너무 오래된 (야후는 수년 전에 페이지를 새로 고침) 스레드 또는 너무 복잡했다. 여전히 신품를 긁어 낸다. 이 코드에서 작성한 CSV 파일에서 키워드를 검색하고 싶습니다.스크랩 데이터 야후 재무 헤드 라인

나는이 코드를 사용했으나 야후의 헤드 라인은 다소 까다 롭습니다. 설명하겠습니다./반응 텍스트 - - 3388 -> > 하지만 난하지 않습니다! 반응 텍스트 - :이 그림에서 볼 수있는 바와 같이

# import libraries 
import urllib2 
from bs4 import BeautifulSoup 
import csv 
from datetime import datetime 

quote_page = 'https://finance.yahoo.com/' 
page = urllib2.urlopen(quote_page) 
soup = BeautifulSoup(page, 'html.parser') 
name_box = soup.find('h1', attrs={'class': 'name'}) 
name = name_box.text.strip() 
print name 


with open('index.csv', 'a') as csv_file: 
writer = csv.writer(csv_file) 
writer.writerow([name, ]) 

, 헤드 라인은이 사이 이 코드를 읽을 수 있도록 코드를 변환하는 방법을 알고 있어야합니다.

솔루션은 매우 간단 할 수 있지만 많은 것을 시도했지만 아무 것도 작동하지 않는 것 같습니다.

Yahoo headlines

나는 당신이 나를 도와 줄이 헤드 라인에 키워드를 찾을 수있는 다른 방법을 찾을 수있을 것입니다 바랍니다.

대단히 감사합니다.

+0

당신은 바로 StretchedBox 위의 앵커 태그 innerText와를 선택 시도? –

답변

0

urllib2 대신 requests을 사용했습니다. 내가들은 바로는 더 많은 사람들이 사용하는 것입니다. 헤드 라인에 관해서는

는 :

import requests 
from bs4 import BeautifulSoup 
a = requests.get('https://finance.yahoo.com/m/8bb0b8f6-9b97-32df-8f56-31690cd85cea/long-lines-are-killing.html') 
soup = BeautifulSoup(a.content, 'lxml') 
search = soup.find_all('h1', {'class':'Lh(36px) Fz(25px)--sm Fz(32px) Mb(17px)--sm Mb(20px) Mb(30px)--lg Ff($ff-primary) Lts($lspacing-md) Fw($fweight) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) Wow(bw)'}) 
print(search[0].text) # prints Long Lines Are Killing Starbucks, So Here's Its Bold New Solution to the Major Problem