JS爬取新闻内容——初学者的历程(一)

   新的学期开设了一门web编程课,第一个实验项目如下:

在这里插入图片描述
作为一个js小白,真的不知道从何下手。没有系统的学习过这一门语言,所以语法什么的真的是什么都不知道。虽然老师对爬虫项目的代码进行了示例,但是不得不说,很多东西发出来了也看不懂。只能在不断地摸索中进一步思考每一步的作用和写法。特别是对网页中内容进行爬取时候的正则表达式,由于每个网页的具体内容和形式不同,所以表达式有各有不同,所以真的看得云里雾里。
这里附示例代码如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在学习了一定的js和html基础之后,开始自己尝试去对示例代码进行修改(要我自己写出来显然是不可能的)。因为项目要求要3-5个网页,所以至少还要爬取两个网页。我原本选择了新浪新闻,但是新浪新闻里的网址格式并没有太多的规律(个人认为),所以很难用正则表达式匹配(当然可能只是我个人能力有限)。所以在进行了一段时间的尝试之后,我放弃了爬取新浪新闻,转战爬取网易新闻。由于网易新闻的标题、关键词等相应的标签内容和格式与中国新闻网的很类似(如下)
在这里插入图片描述
所以在修改时并没有遇到太多的麻烦,但是对网址和发布时间的爬取花费了一定的时间,因为要考虑如何去书写相应的正则表达式。但是经过一两天的努力至少可以爬取出以上内容而不会出现太大的错误了。但是我犯了许多错误。
我在把这些爬取的内容存入mysql后,通过“select …… from fetches limit ……”查看我所爬取的内容时,发现我所爬取的网址url有许多会出现重复比如:https://……/http://……这样的形式。我开始意识到相应的获取url的代码有问题。仔细查看和比对后发现似乎中国新闻网的url多是以http开头,所以在示例代码中会出现以http开头,以//开头,其他这三种情况。而网易新闻http开头和https开头都很多,所以在对示例代码不进行修改的情况下,https开头的会出现上述重复(至少我是这么理解并解决的)。所以我对相应代码进行了修改,对https开头的进行了额外的讨论。终于成功解决了这个问题。
其次,我又发现我爬取的keywords,title等等和文本相关的内容都出现了“?”和其他乱码,我也意识到可能是网易新闻的编码格式不是utf-8,于是我开始在源代码里寻找相应的代码格式说明。可能是我没有注意到,总之我没有找到相应的说明。所以我就只好去网上查阅资料。查看到可以在网页中用右键鼠标点击在"编码“一栏里查看代码格式。
在这里插入图片描述
所以知道了网易新闻的编码格式为GBK,所以进行了相应的修改最终得到如下代码:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
能力有限也只能大部分照搬示例代码。最终得到了如下mysql数据(以url和keywords20行为例):
在这里插入图片描述
当然还有许多要改进的许多地方。接下来要再对1-3个网页进行爬取,然后制作网页实现分享全文搜索,就先写到这。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值