2017-08-16 95 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

不错!谢谢!第一个工作得很好! – holmix

+0

@holmix:如果这回答了您的问题,那么您应该将其标记为“已接受”。 –