1

私はPythonを初めて使用し、Webサイトからxmlファイルを取得してデータベースにロードしようとしています。Python で Beautiful Soup モジュールを使用していますが、必要な特定の xml ファイルを取得できません。Web サイトのソース コードでは、次のようになります。

<a href="ReportName I want 20130101.XML">ReportName.XML</a>
<a href="ReportName I want 20120101.XML">ReportName.XML</a>
<<a href="ReportName I dont want 123.XML">ReportName.XML</a>

以下は、私がPythonで持っているコードを示しています。これにより、「href」タグが付いたすべてが返されますが、「名前 dddddddd が必要なレポート」でファイルをフィルタリングしたいのです。たとえば、「href=\s\w+」などの正規表現を使用してみましたが、NONE が返されるため、役に立ちませんでした。どんな助けでも大歓迎です

from bs4 import BeautifulSoup
import urllib
import re

webpage=("http://www.example.com")
response=urllib.urlopen(webpage).read()
soup=BeautifulSoup(response)



for link in soup.find_all('a'):
   print(link.get('href')

Python を使用すると、findall('href') で文字列全体が引き戻されますが、xml の側面だけをフィルター処理したいと考えています。findall('href\MarketReports') や findall('href\w+') などのコードのバリエーションを試しましたが、コードを実行すると "None" が返されます。

どんな助けでも大歓迎です

4

2 に答える 2

2

あなたが探しているものを完全に明確にすることはできませんが、正しく理解できれば、ReportName.XML のみを取得したい場合は次のようになります。

find('a').text

「/MarketRepoerts/ReportName.XML」を探している場合は、次のようになります。

find('a').attrs['href']
于 2013-01-23T15:45:11.967 に答える
0

次のコードを使用したところ、必要に応じてレポートを見つけることができました。jdotjdotの入力とともに、Googleのプレゼンテーションは大きな助けになりました

http://www.youtube.com/watch?v=kWyoYtvJpe4

XML を見つけるために使用したコードは、

import re
import urllib

webpage=("http://www.example.com")
response=urllib.urlopen(webpage).read()

print re.findall(r"Report I want\w+[.]XML",response)
于 2013-01-31T12:08:48.503 に答える