0
파이썬 스크립트로 웹 사이트의 특정 헤더를 가져 오려고합니다. 이 작업을 수행 할 수 있다면 실제로 이미지 이름을 가져올 수 있지만 헤더와 같은 간단한 것으로 시작한다고 생각했습니다. 헤더 이름을 가져 와서 CSV 파일에 날짜를 저장할 수 있지만 헤더 이름이 인쇄되지 않습니다. 명확하게하기 위해, 내가 저장할 때마다 날짜가 파일에 저장되지만 헤더 이름은 저장하지 않습니다.파이썬과 아름다운 스프와 함께 CSV 파일에 모든 정보를 쓸 수없는 것 같습니다
http://www.photosbywagner.com/galleryone.html
내가 당겨 해요 섹션은 다음과 같습니다 :
<div id="headcontainer"><h1>Ed Wagner Photo Gallery:</h1></div>
나는 아니에요 여기
import urllib2
from bs4 import BeautifulSoup
import csv
import time
import os
def get_html():
opener = urllib2.build_opener(
urllib2.HTTPRedirectHandler(),
urllib2.HTTPHandler(debuglevel=0),
)
opener.add_handler = [
('User-agent',
"Mozilla/4.0 (compatible; MSIE 7.0; "
"Windows NT 5.1; .NET CLR 2.0.50727; "
".NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)")
]
url = "http://www.photosbywagner.com/galleryone.html"
response = opener.open(url)
return ''.join(response.readlines())
def get_html_sections(html):
soup = BeautifulSoup(html)
html_section = soup.find('div',
attrs={'id': 'headcontainer'})
return html_section
def parse_section_html(html):
selected_html = get_html_sections(html)
result = {}
# <img />
result['selection'] = selected_html.find('h1').contents[0]
return result
field_order = ['date', 'info']
fields = {'date' : 'Date',
'info' : 'Info'}
def write_row(selected_html):
file_name = "WrittenNames" + ".csv"
if os.access(file_name, os.F_OK):
file_mode = 'ab'
else:
file_mode = 'wb'
csv_writer = csv.DictWriter(
open(file_name, file_mode),
fieldnames=field_order,
extrasaction='ignore',
)
if file_mode == 'wb':
csv_writer.writerow(fields)
csv_writer.writerow(selected_html)
if __name__ == '__main__':
html = get_html()
row_to_write = parse_section_html(html)
row_to_write['date'] = time.strftime("%Y-%m-%d %H:%M")
write_row(row_to_write)
print row_to_write
는 웹 페이지입니다 : 여기
내 파이썬 스크립트입니다 다른 모든 것들이 체크 아웃 된 것처럼 보이기 때문에 내가 여기에서 놓친 것이 확실하다 - 올바른 inf를 가져온다. o 화면에 인쇄하면 CSV에 저장되지 않습니다.
감사합니다. parse_section_html에서
OMG .... 나는 그것을 놓쳤다는 것을 믿을 수 없다. 나는 너무 오랫동안 그것을 꼼짝 않고 바라 보았다. 고맙습니다! – Amaranda