2013-11-11 5 views
1

Я создаю веб-скребок для разных точек новостей. Я пытаюсь создать его для газеты The Hindu.Веб-скребок для формирования базы данных новостей

Я хочу получать новости из различных ссылок, упомянутых в его архивах. Допустим, я хочу получать новости по ссылкам, указанных на следующий день: http://www.thehindu.com/archive/web/2010/06/19/ что 19june, 2010.

Сейчас я написал следующие строки кода:

import mechanize 
from bs4 import BeautifulSoup 

url = "http://www.thehindu.com/archive/web/2010/06/19/" 

br = mechanize.Browser() 
htmltext = br.open(url).read() 

articletext = "" 
soup = BeautifulSoup(htmltext) 
for tag in soup.findAll('li', attrs={"data-section":"Business"}): 
    articletext += tag.contents[0] 
print articletext 

Но я не могу для получения требуемых результатов. Я в основном застрял. Может кто-нибудь помочь мне разобраться?

+0

Не добавляйте к вашему вопросу теги 'python-2.7' и' python-3.x', что просто путает людей, какую версию Python вы используете. – jazzpi

+1

, если вы новичок в Python, возможно, веб-искатель не самый лучший «мир привет», чтобы познакомиться –

ответ

5

Попробуйте следующий код:

import mechanize 
from bs4 import BeautifulSoup 

url = "http://www.thehindu.com/archive/web/2010/06/19/" 

br = mechanize.Browser() 
htmltext = br.open(url).read() 

articletext = "" 
for tag_li in soup.findAll('li', attrs={"data-section":"Op-Ed"}): 
    for link in tag_li.findAll('a'): 
     urlnew = urlnew = link.get('href') 
     brnew = mechanize.Browser() 
     htmltextnew = brnew.open(urlnew).read()    
     articletext = "" 
     soupnew = BeautifulSoup(htmltextnew) 
     for tag in soupnew.findAll('p'): 
      articletext += tag.text 
     print re.sub('\s+', ' ', articletext, flags=re.M) 

driver.close() 

Для re вы, возможно, придется импортировать re модуль.

1

Я предлагаю вам проверить Scrapy. Попробуйте их учебник с параметрами и поэкспериментируйте с этим. Они имеют гораздо более развитую инфраструктуру сканирования в Интернете, чем модуль механизации.

+0

Сэр, я уже новичок в программировании на Python. С помощью Scrapy я чувствую себя немного неудобно. Спасибо – casanova

+0

Учитывая, что вы новичок в Python, если вы настаиваете на «изучении» написания веб-искателя, вы должны послушать этот ответ и изучить Scrapy, так как вы новичок, усилия будут практически одинаковыми, но результат будет другим. –

+0

Scrapy на самом деле довольно прост, он заимствует ряд вещей из проекта django при создании проекта сканирования пауков/веб-страниц. Сначала это кажется довольно пугающим, но дайте ему некоторое время, работайте над учебниками и попытайтесь применить эти знания к тому, что вы пытаетесь выполнить. – razzmataz

Смежные вопросы