2017-08-16 10 views
1

私はライブラリページから検索結果をスクラップしようとしています。しかし、私は書籍のタイトル以上のものを求めているので、スクリプトがすべての検索結果を開き、詳細なサイトで詳細を調べるようにしたい。
私がこれまで持っていることは以下の通りです:検索結果に見つかったリンクの一覧を削ります

import bs4 as bs 
    import urllib.request, urllib.error, urllib.parse 
    from http.cookiejar import CookieJar 
    from bs4 import Comment 


    cj = CookieJar() 
    basisurl = 'http://mz-villigst.cidoli.de/index.asp?stichwort=hans' 
    #just took any example page similar to the one i have in mind 

    opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj)) 
    p = opener.open(basisurl) 

    for mednrs in soup.find_all(string=lambdatext:isinstance(text,Comment)): 
    #and now when i do [0:] it gives me the medianumbers and i can create the links like this: 

      links = 'http://mz-villigst.cidoli.de/index.asp?MEDIENNR=' + mednrs[10:17] 

私の主な質問は以下のようになります。どのように私はこのように(それは私のリストを与えるために得ることができます:[「1」、「2」] ... )私はそれを通過することができますか?

+0

を私はあなたの現在のコードを理解していません。 「コメント」とは何ですか? –

+0

申し訳ありません、私は代わりにmednrsを意味しました... – holmix

答えて

0

は、リストを作成し、ループ内でそれに追加:

links = [] 
for mednrs in soup.find_all(string=lambda text: isinstance(text, Comment)): 
    link = 'http://mz-villigst.cidoli.de/index.asp?MEDIENNR=' + mednrs[10:17] 
    links.append(link) 

やリストの内包表記を使用します。

links = ['http://mz-villigst.cidoli.de/index.asp?MEDIENNR=' + mednrs[10:17] 
     for mednrs in soup.find_all(string=lambda text: isinstance(text, Comment))] 
+0

nice!ありがとうございました!最初はうまくいった! – holmix

+0

@holmix:これがあなたの質問に答えた場合は、「受け入れ」と記入してください。 –

関連する問題