鱼C论坛

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

看了爬虫视频自己做了一个爬煎蛋网新闻标题并保存到news.txt文件中

[复制链接]
发表于 2016-10-28 21:49:16 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 crxliy 于 2016-11-2 10:48 编辑

看了爬虫视频自己做了一个爬煎蛋网新闻标题并保存到news.txt文件中,看来不是爬MM这类的提问少有人解答呀,还好,自己粗心在一个地方弄错了参数自己解决了!丢出来给大伙分享交流吧!下次计划用正则表达式写个爬取全网最优惠机票的玩玩,结合点先进点的自动获取代理IP并联网验证,练手完就开始搞股票量化及自动交易!

(另外看了小甲虫的爬煎蛋妹子的代码觉得应该是有个地方写错了,个人认为page_num-=i应该改为page_num-=1才对,不然就不会按设置的page页数爬而是跳页来爬MM图了,当然,不影响爬图,只是不按设置的page页数来爬而已)



  1. import urllib.request,os,time

  2. def url_open(url):
  3.     req=urllib.request.Request(url)
  4.     req.add_header('User-Agent','Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36')
  5.     resp=urllib.request.urlopen(req)

  6.     html=resp.read()

  7.     return html


  8. def find_news(url):
  9.     html=url_open(url).decode('utf-8')
  10.     news_txts=[]
  11.    
  12.     a=html.find('.html" target="_blank">')
  13.     while a!=-1:
  14.         b=html.find('</a>',a,a+93)
  15.         if b!=-1:
  16.             news_txts.append(html[a+23:b])
  17.         else:
  18.             b=a+23

  19.         a=html.find('.html" target="_blank">',b)
  20.     return news_txts
  21.     #for i in news_txts:
  22.     #     print(i)
  23.     #     print()


  24. def save_txt(folder,news_txts):
  25.     with open(r'news.txt','a') as f:
  26.         for i in news_txts:
  27.             f.write(str(i)+'\r\n')
  28.             #time.sleep(1)
  29.             print(i)
  30.          



  31. '''
  32.             for i in range(len(news_txts)):
  33.                     f.write(news_txts[i]+"\r\n")
  34.                     print(news_txts[i])
  35. '''

  36. def download_news(folder='news',page=input('请输入需要获取煎蛋网新闻标题的页数(前几页):')):
  37.     page=int(page)
  38.     os.mkdir(folder)
  39.     os.chdir(folder)
  40.    
  41.     url='http://jandan.net/page/'
  42.     for i in range(page):
  43.             page=i+1
  44.             page_url=url+str(page)

  45.             news_txts=find_news(page_url)
  46.             
  47.             #print(news_txts)
  48.    
  49.             save_txt(folder,news_txts)


  50. if __name__=='__main__':
  51.     download_news()

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-10-29 08:26:27 | 显示全部楼层
实在不懂问题出在哪了,在save_txt(folder,news_txts)函数里加了个输出都是正常的,难道是速度太快写入速度跟不上只能写进最后一页数据?不可能啊!
  1. def save_txt(folder,news_txts):
  2.         #for each in news_txts:
  3.                 with open(r'news.txt','w') as f:
  4.                     for i in news_txts:
  5.                             f.write(i+"\n")
  6.                             print(i)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-29 15:33:43 | 显示全部楼层
open参数弄错,自己解决了!还是得靠自己呀!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-23 15:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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