从搜索结果中找到一个链接列表

2024-10-04 03:16:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图从一个图书馆的网页上抓取搜索结果。但由于我想要的不仅仅是书名,我希望脚本能够打开每个搜索结果,并从详细的网站中获取更多信息。
到目前为止,我掌握的情况如下:

    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”]…),然后我就可以通过它了?你知道吗


Tags: thefromimporthttprequestcommentopenerurllib
1条回答
网友
1楼 · 发布于 2024-10-04 03:16:50

创建一个列表并将其附加到循环中:

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))]

相关问题 更多 >