首页 > 解决方案 > 关于通过循环脚本循环多个站点的最佳意见

问题描述

我有一个 xml 站点地图。我想在地图上的所有链接上运行一个脚本。这是为我提供链接的代码。

            from lxml import etree
            import urllib
            from urllib.request import urlopen as uReq
            from bs4 import BeautifulSoup as soup

            my_firsturl = 'https://www.desertessence.com/sitemap.xml'

            pagedata = urllib.request.urlopen(my_firsturl)
            mapa = soup(pagedata, "lxml-xml")


            print (mapa)

在其他 HTML 网站上,我可以调用[0], [1]单行。这样我就可以创建一个循环。我最终想给它提供多张地图并让脚本重复。目前我无法调用特定链接并且即使在查看文档之后也缺乏知识。

标签: pythonxmlpython-3.xbeautifulsouppython-requests

解决方案


我会切换到 urllib3 http://urllib3.readthedocs.io/en/latest/user-guide.html

并使用内置的池管理器。 http://urllib3.readthedocs.io/en/1.2.1/managers.html

import urllib3
from bs4 import BeautifulSoup

url = 'https://www.desertessence.com/sitemap.xml'

req = urllib3.PoolManager(10)
res = req.request('GET', url)
mapa = BeautifulSoup(res.data, "lxml")
for links in mapa.select("url loc"):
    print(links.text)

推荐阅读