2012-12-20 3 views
1

나는 TV 캐치 업 웹 사이트에서 HTML을 가져 오는 프로그램을 만들고 나서 split 함수를 사용하여 모든 HTML 데이터를 채널 이름과 현재 사용중인 프로그램으로 나눕니다 테이블 : BBC 1 - '프로그램 이름'. 나는 누군가가 중대하게 평가할 것을 도울 수있는 경우에 나의 첫번째 균열 기능 후에 나가하는 무슨을에 다만 도움을 필요로한다.파이썬 웹 페이지 데이터 가져 오기

import urllib2 
import string 


proxy = urllib2.ProxyHandler({"http" : "http://c99.cache.e2bn.org:8084"}) 

opener = urllib2.build_opener(proxy) 

urllib2.install_opener(opener) 

tvCatchup = urllib2.urlopen('http://www.TVcatchup.com') 

html = tvCatchup.read() 

firstSplit = html.split('<a class="enabled" href="/watch.html?c=')[1:] 
for i in firstSplit: 
    print i 

secondSplit = html.split ('1" title="BBC One"></a></li><li class="v-type" style="color:#6d6d6d;">')[1:] 

for i in secondSplit: 
print i 

답변

1

출력을 분할하지 않지만 일종의 HTML 구문 분석기를 사용합니다. Beautiful Soup은 좋은 선택입니다.

-1

urllib2를 사용하지 마십시오. 대신 https://github.com/kennethreitz/requests

HTML 구문 분석 사용 BeautifulSoup로 들어 사용 요청 http://www.crummy.com/software/BeautifulSoup/bs4/doc/

참고 :이 프록시는 프록시 설정을 제거, 아래 것 같다, 그리고 당신이거야

import requests 
from BeautifulSoup import BeautifulSoup 

proxyDict = {"http":"http://c99.cache.e2bn.org:8084"} 
r = requests.get("http://www.TVcatchup.com", proxies=proxyDict) 

soup = BeautifulSoup(r.text) 
tvs = list() 

uls = soup.findAll("ul", { "class":"channels2"} 
for ul in uls: 
    div = ul.find("div") 
    if div: 
     showid = div.get("showid") 
     link = ul.find("a") 
     href = link.get("href") 
     title = link.get("title") 
     tvs.append({"showid":showid, "href":href, "title":title}) 
print tvs 

를 작동 얻으세요.

[{'showid': u'450263', 'href': u'/watch.html?c=1', 'title': u'BBC One'}, 
{'showid': u'450353', 'href': u'/watch.html?c=2', 'title': u'BBC Two'}, 
{'showid': u'450398', 'href': u'/watch.html?c=3', 'title': u'ITV1'}, 
{'showid': u'450521', 'href': u'/watch.html?c=4', 'title': u'Channel 4'},... 
+0

이것은 학교 수업이기 때문에 웹 페이지를 조작 할 때 사용법을 가르쳐 준 것이 그것이 학교에서 사용한 유일한 이유입니다. 또한 프록시 처리기를 분명히하기 위해 프로그램이 실제로 프록시를 통해 학교에있을 때 인터넷에 액세스 할 수 있습니다. – user1655562

+0

저는 현재 전체 코드를 작성하고 있습니다. 제발 잠시만 기다려주십시오 :) – Goranek

+0

감사합니다. 내가 혼란스러워하는 일은 내가 HTML 목록을 작성하고 목록을 반복 작성하고 HTML의 나머지 부분을 제거하는 방법이다. 내가 무엇을 해야할지 전혀 모른다. – user1655562

0

HTML의 부분 문자열이 아닌 화면 스크래퍼를 원하는 것처럼 들립니다. 좋은 화면 긁기 도구는 XPATH를 사용하여 데이터를 검색하는 Scrapy입니다.

Scrapy at a glance 페이지가 유용합니다. 웹 페이지에서 데이터를 추출하는 방법의 전체 예제를 제공합니다.

관련 문제