Мы должны извлечь указанное количество блогов (n
), прочитав их из текстового файла, содержащего список блогов.Извлечение данных блога в python
Затем я извлекаю данные блога и добавляю его в файл.
Это только часть основного задания применения nlp
к данным.
До сих пор я сделал это:
import urllib2
from bs4 import BeautifulSoup
def create_data(n):
blogs=open("blog.txt","r") #opening the file containing list of blogs
f=file("data.txt","wt") #Create a file data.txt
with open("blog.txt")as blogs:
head = [blogs.next() for x in xrange(n)]
page = urllib2.urlopen(head['href'])
soup = BeautifulSoup(page)
link = soup.find('link', type='application/rss+xml')
print link['href']
rss = urllib2.urlopen(link['href']).read()
souprss = BeautifulSoup(rss)
description_tag = souprss.find('description')
f = open("data.txt","a") #data file created for applying nlp
f.write(description_tag)
Этот код не работает. Он работал на давая ссылку directly.like:
page = urllib2.urlopen("http://www.frugalrules.com")
Я называю эту функцию из другого сценария, когда пользователь дает ввод n
.
Что я делаю неправильно?
Traceback:
Traceback (most recent call last):
File "C:/beautifulsoup4-4.3.2/main.py", line 4, in <module>
create_data(2)#calls create_data(n) function from create_data
File "C:/beautifulsoup4-4.3.2\create_data.py", line 14, in create_data
page=urllib2.urlopen(head)
File "C:\Python27\lib\urllib2.py", line 127, in urlopen
return _opener.open(url, data, timeout)
File "C:\Python27\lib\urllib2.py", line 395, in open
req.timeout = timeout
AttributeError: 'list' object has no attribute 'timeout'
Что значит «не работает» означает? Включите трассировку. – geoffspear
Готово. Но если я делаю 'rss = urllib2.urlopen (ссылка ['href'])' трассировка _TypeError: индексы списка должны быть целыми числами, а не str_ Я новичок в этом, поэтому, пожалуйста, несите меня. – Remy