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登录并且它连接到我的账户,当我设置它时代码实际上没有识别密码。我添加了一个密码,我现在得到了我登录时建立的自定义表。谢谢! –