使用python取消站点地图

2024-06-16 13:03:58 发布

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

我试图用python构建一个站点地图 这是我的代码(网站地图生成器.py)在

  from urllib2 import urlopen
  from bs4 import BeautifulSoup
   import datetime
  import random
  import re

   pages = set()
def getLinks (pageUrl):
global pages
html = urlopen("http://www.mysite.ch" + pageUrl )
bsObj = BeautifulSoup(html, "html.parser")
for link in bsOj.findAll("a" , href = re.compile("^(/f/)")):
    if 'href' in link.attrs:
        if link.attrs['href'] not in pages:
                newPage = link.attrs['href']
                print(newPage)
                pages.add(newPage)
                getLinks(newPage)
   getLinks("")

我有以下消息错误:

^{pr2}$

我很感激python教程中的任何新提示


Tags: infromimportrehtml地图linkpages
2条回答

您只需更正您的行:

for link in bsOj.findAll("a" , href = re.compile("^(/f/)")):

签署人:

^{pr2}$

代码的问题在于将bsobj定义为全局的。在

在Python中,global表示“模块级”,它只在函数中用于表示要在函数中反弹的模块级名称。它并不是指模块级的“转发声明”(forward declaration)——这是不存在的,因为当加载(执行或导入)模块时,顶层的所有代码都是按顺序执行的。在

{{cd3>之后,用这个值来定义。在

另外,你可以为你的代码使用格式化程序,因为它看起来不太好和一致。检查yapfblack:)

相关问题 更多 >