0
我能夠刮這個網站表沒有問題;但是,要訪問我自定義的表我需要先登錄然後刮,因爲如果我不我得到一個默認輸出。我覺得我很接近,但我對python比較陌生。期待更多地瞭解機械化和BeautifulSoup。Python網頁刮美麗的湯
它似乎是正確登錄,因爲我得到一個「不正確的密碼」錯誤,如果我故意輸入一個錯誤的密碼下面,但我如何連接登錄到url我想刮?
from bs4 import BeautifulSoup
import urllib
import csv
import mechanize
import cookielib
cj = cookielib.CookieJar()
br = mechanize.Browser()
br.set_cookiejar(cj)
br.open("http://www.barchart.com/login.php")
br.select_form(nr=0)
br.form['email'] = 'username'
br.form['password'] = 'password'
br.submit()
#print br.response().read()
r = urllib.urlopen("http://www.barchart.com/stocks/sp500.php?view=49530&_dtp1=0").read()
soup = BeautifulSoup(r, "html.parser")
tables = soup.find("table", attrs={"class" : "datatable ajax"})
headers = [header.text for header in tables.find_all('th')]
rows = []
for row in tables.find_all('tr'):
rows.append([val.text.encode('utf8') for val in row.find_all('td')])
with open('snp.csv', 'wb') as f:
writer = csv.writer(f)
writer.writerow(headers)
writer.writerows(row for row in rows if row)
#from pymongo import MongoClient
#import datetime
#client = MongoClient('localhost', 27017)
print soup.table.get_text()
感謝您的答覆。該網址仍然可以訪問,而無需登錄;然而,問題是,當你從瀏覽器或python訪問url而沒有這樣做時,它會向你發送默認的表格設置。一旦你登錄它,然後顯示我需要的正確表。我嘗試了你的建議,但它仍然給我默認的標題。我認爲我的機械設置可能有問題? –
你知道我忘記了我用FB登錄並且它連接到我的賬戶,當我設置它時代碼實際上沒有識別密碼。我添加了一個密碼,我現在得到了我登錄時建立的自定義表。謝謝! –