1

さまざまなニュース アウトレット用の Web スクレイパーを作成しています。The Hindu新聞用に作ってみました。

アーカイブに記載されているさまざまなリンクからニュースを取得したい. http://www.thehindu.com/archive/web/2010/06/19/次の日、つまり 2010 年 6 月 19日に記載されているリンクでニュースを取得したいとします。

今、私は次のコード行を書きました:

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

しかし、必要な結果を得ることができません。私は基本的に立ち往生しています。誰かがそれを整理するのを手伝ってくれますか?

4

2 に答える 2

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

于 2013-11-13T11:02:06.897 に答える
1

Scrapyをチェックすることをお勧めします。パラメータを使用してチュートリアルを試し、それを試してください。これらは、mechanize モジュールよりもはるかに開発された Web クローリング インフラストラクチャを備えています。

于 2013-11-11T20:38:10.613 に答える