这个网站主要后三位数字变化
但是我这样写确并没有获取到我指定页面的数据
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()
这是完整的代码,麻烦帮忙看看救救孩子
把你第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)#打印输出
如有帮助,请点采纳,谢谢。