0

私は非常に新しいpythonリクエストと美しいスープですので、私のコードはおそらく本当に悪いです。私はパースしていますPython、リクエスト、および美しいスープを使用してキーワードに関連付けられたリンクを見つける方法

f = open('sites.txt','r') 
sitelist = [] 
for line in f: 
    sitelist.append(line.strip()) 
getsites = [''] 
print(sitelist) 
for i in range(len(sitelist)): 
    getsites.append(sitelist[i]) 

for i in range(len(sitelist)): 
    temp = requests.get(sitelist[i]) 
    data = temp.text 
    soup = BeautifulSoup(data, "html.parser") 
    for url in soup.find_all("Yeezy"): 
     print(element.find_previous_sibling('loc')) 
     print(url.text) 

XMLファイルの例:私は今持っている

<url> 
<loc> 
https://www.a-ma-maniere.com/products/beanie-502805f16-black-white 
</loc> 
<lastmod>2016-12-24T22:25:05Z</lastmod> 
<changefreq>daily</changefreq> 
<image:image> 
<image:loc> 
https://cdn.shopify.com/s/files/1/0626/9065/products/502805F16-1.jpg?v=1472499019 
</image:loc> 
<image:title>Alexander Wang: Beanie (Black/White)</image:title> 
</image:image> 
</url> 

を私がやりたいことは、それに関連付けられたリンクが格納されている印刷経由でキーワードをつかむです。

+0

あなたが探しているキーワードのサンプルは何ですか?どのXMLフィールドがキーワードに最も適していると思われますか(つまり、キーワードのXMLはどこにありますか) – blacksite

+1

キーワードはタグに表示されます。たとえば、このxmlでは "Alexander Wang"を検索し、対応する製品の場所を検索しようとしていますタグ – cjlatch125

答えて

1

すべてを見つけるには、探したいタグを付ける必要があります。 "Yeezy"という単語を含むそのタイプのタグだけが必要な場合は、forループで、タグのテキストが探している文字列かどうかを確認します。あなたが探している文字列であれば、要素が必要で、URLを印刷できます。ほとんどのURLの

あなたはこの時点であなたの画像を取得しようとしているので、これはより多くの

追加情報訪問 get_text()

については

for url in soup.find_all('url') 
    if url.find('image:title') and url.loc: 
     if "Yeezy" in url.find('image:title').get_text() 
      print(url.find('image:loc').get_text()) 

のように、単にあなたのために

for url in soup.find_all('a') 
    if "Yeezy" in url.get_text(): 
     print(url['href']) 

かもしれないですthis answerもご覧ください。ビルドされたpythonオブジェクトとしてアクセスするのではなく、イメージを読み込んで格納できるライブラリが必要です。

+0

これを実装すると – cjlatch125

+0

AttributeError: ' NoneType 'オブジェクトには属性' get_text 'がありません – cjlatch125

+0

何も見つからない場合は、そのエラーがスローされます。場合によっては、あなたが探しているフィールドを持っていない全角タグが来ることがあります。私はその問題をうまく解決するために答えを編集しました。 –

関連する問題