Я использую как xpath, так и beautifulsoup для очистки веб-страницы. Xpath требуется дерево в качестве входных данных и beautifulsoup нужен суп в качестве входных данных. Here're код, чтобы получить дерево и суп:store html in python
def get_tree(url):
r = requests.get(url)
tree = html.fromstring(r.content)
return tree
# get soup
def get_soup(url):
r = requests.get(url)
data = r.text
soup = BeautifulSoup(data)
return soup
Оба этих метода использует requests.get (URL). Это то, что я хочу сохранить впереди. Вот код в Python:
import requests
url = "http://www.nytimes.com/roomfordebate/2013/10/28/should-you-bribe-your-kids"
r = requests.get(url)
f = open('html','wb')
f.write(r)
А потом я получил ошибку вроде этого:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: must be convertible to a buffer, not Response
Вот код, чтобы сохранить текст, и я получил сообщение об ошибке:
import requests
from lxml import html
url = "http://www.nytimes.com/roomfordebate/2013/02/13/when-divorce-is-a-family-affair"
r = requests.get(url)
c = r.content
outfile = open("html", "wb")
outfile.write(c)
outfile.close()
infile = open("html", "rb")
tree = html.fromstring(infile)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Python/2.7/site-packages/lxml/html/__init__.py", line 662, in fromstring
start = html[:10].lstrip().lower()
TypeError: 'file' object has no attribute '__getitem__'
Как я могу это решить?
Спасибо. Я все еще получаю ошибку при загрузке содержимого. См. Сообщение об обновлении. – f4fc2791e4473eb2ba41b5ddb445b2