关于#爬虫#的问题,如何解决?(语言-python)

爬虫 页面替换的代码 怎么写 代码是p%s报错了
内容是大众点评的露营旅游是

for i in range(11):
    N = 15 * i
    url_page = 'https://www.dianping.com/search/keyword/2/0_%E5%8C%97%E4%BA%AC%E9%9C%B2%E8%90%A5%E6%97%85%E6%B8%B8/p%s' % (N)
    print(url_page)

因为你中间的一些 %E5 之类的东西也被识别为了 format 格式串,所以会报错。

解决方案:

for i in range(11):
    N = 15 * i
    url_page = r'https://www.dianping.com/search/keyword/2/0_%E5%8C%97%E4%BA%AC%E9%9C%B2%E8%90%A5%E6%97%85%E6%B8%B8/p' + str(N)
    print(url_page)
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7436301
  • 这篇博客也不错, 你可以看下Python 占位符%的使用方法(输出格式化的字符串)
  • 除此之外, 这篇博客: Python零基础入门篇⑳〗- 字符串格式化中的 根据类型定义的格式化 - %s 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 字符串格式化使用操作符 % 来实现, 示例 'my name is %s,my age is %s % ('neo', 18)'

    格式符: %s

    连接符:格式化字符串与格式符变量之间用一个 % 连接, % 两边各有一个空格

    附:当我们字符串中只有一个变量时,不需要使用元组进行包裹;超过一个时,就需要使用元组进行包裹。

    示例如下:

    info_01 = 'My name is %s , age is %s ' % ('Neo', 19)
    print(info_01)
    
    # >>> My name is Neo , age is 19
    
    info_02 = 'My name is %s , age is %s '
    
    name_01 = 'Neo'
    age_01 = 18
    name_02 = 'Jack'
    age_02 = 17
    
    print(info_02 % (name_01, age_01))
    print(info_02 % (name_02, age_02))
    
    # >>> My name is Neo , age is 18
    # >>> My name is Jack , age is 17