鱼C论坛

 找回密码
 立即注册
查看: 1677|回复: 2

[已解决]关于for循环的一些问题

[复制链接]
发表于 2017-11-10 14:16:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
自从上一次写了爬取一本小说的爬虫,现在要爬取整个网站的小说,并按书名保存成一个txt文件,但在for循环上遇到的一些问题,想请教一下各位大神:

0. 为什么for循环在主函数内只会显示第一个拼接的url,而其他函数内却可以显示全部拼接成功的url
1. 爬取整个网站应该不会用到 Scrapy之类的吧?
代码如下
  1. import re,urllib,os,html
  2. import requests as req

  3. def url_open(url):#网页打开函数,以防被禁
  4.     req = urllib.request.Request(url)
  5.     req.add_header('User-Agent',"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36")
  6.     response = urllib.request.urlopen(url)
  7.     html = response.read()

  8.     return html



  9. def get_txt_url(url):#获取小说的url
  10.     html = url_open(url).decode('gbk')
  11.     reg = r'<li><a href="/(.*?)" title=".*?" target="_top">.*?</a></li>'
  12.     book_url = re.findall(reg, html,re.S)
  13.     #print(book_url)
  14.     for i in book_url:
  15.         url_1 = url + i#拼接小说的url
  16.         return url_1


  17. def get_txt_book(txt_url):
  18.     html = url_open(txt_url).decode('gbk')
  19.     reg = r'<li><a href="/.*?/(.*?)">.*?</a></li>'
  20.     char = re.findall(reg,html,re.S)
  21.     for a in char:
  22.         url_z = txt_url+a
  23.         return url_z



  24. def gulong_txt(folder='txtbook',page=1):#主函数
  25.     os.chdir(folder)
  26.     url = 'http://www.gulongwang.com/'
  27.     txt_url = get_txt_url(url)#获取小说的url
  28.     print(txt_url)
  29.     txt_book =get_txt_book(txt_url)#获取小说正文url
  30.     print(txt_book)

复制代码
最佳答案
2017-11-10 14:46:03
本帖最后由 wyp02033 于 2017-11-10 14:47 编辑

你的for循环在执行完第一循环后就返回退出了,所以你的循环实际上只执行了一次。
如果要获取全部的链接,你需要用一个列表来存储,然后返回整个列表。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-11-10 14:32:12 From FishC Mobile | 显示全部楼层
你的主函数中没有for循环
爬虫进阶当然要用高端点的工具,比如scrapy
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-10 14:46:03 | 显示全部楼层    本楼为最佳答案   
本帖最后由 wyp02033 于 2017-11-10 14:47 编辑

你的for循环在执行完第一循环后就返回退出了,所以你的循环实际上只执行了一次。
如果要获取全部的链接,你需要用一个列表来存储,然后返回整个列表。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-3 21:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表