我爬虫没办法获取多页这该怎么处理哇

img

img

这个网站主要后三位数字变化

img

但是我这样写确并没有获取到我指定页面的数据

import re
import requests

headers={
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.64',
    'Cookie': 'bcolor=; font=; size=; fontcolor=; width=; Hm_lvt_26c0596a5f449ac3144f90f3a3202786=1624770759,1625320560; hitme=1; hitbookid=17577; Hm_lpvt_26c0596a5f449ac3144f90f3a3202786=1625320791',
    'Referer': 'http://www.dvdspring.com/b/111582/'
}


def parse_page(url):
    response=requests.get(url,headers=headers)
    text=response.text
    titles=re.findall(r'<div class="bookname">.*?<h1>(.*?)</h1>',text,re.DOTALL)
    contents=re.findall(r'<div id="content">(.*?)</div>',text,re.DOTALL)
    fiction=[]
    for content in contents:
        x=re.sub('r<.*?>','',content,flags=re.S)
        fiction.append(x.strip())
        print(x.strip())




def main():
    url='http://www.dvdspring.com/b/111582/479440.html'
    for x in range(441,443):
        url='http://www.dvdspring.com/b/111582/479%s.html'%x
    parse_page(url)


if __name__ == '__main__':
    main()

这是完整的代码,麻烦帮忙看看救救孩子

img
把你第29行这句,缩进一下,放在for循环内。不然是先循环完了才 执行,永远都是获得的是最后一个

你需要在函数parse_page(url)中写上返回值语句,即return fiction, 在main函数中后面将调用 函数的结果赋值给一个变量,写成res=parse_page(url),print(res)并缩进到for循环中,这样就可以正常返回结果了。

def parse_page(url):
    #your code
    for content in contents:
        x = re.sub('r<.*?>', '', content, flags=re.S)
        fiction.append(x.strip())
        print(x.strip())
    return fiction#添加返回结果语句

def main():
    url = 'http://www.dvdspring.com/b/111582/479440.html'
    for x in range(441, 443):
        url = 'http://www.dvdspring.com/b/111582/479%s.html' % x
        res=parse_page(url)#将调用函数的值赋值给变量
        print(res)#打印输出

如有帮助,请点采纳,谢谢。