Datehoer的博客
我本将心向明月,奈何明月照沟渠
Datehoer的博客

当前位置:主页 > 技术分享 > python 爬虫之获取标题和链接

python 爬虫之获取标题和链接

浏览: 作者:Datehoer 发布日期:2020-11-21 21:42:21 来源: 原创

说一件seoer都明白的事情,就是去别的论坛发文章,先发一些有技术性的文章,之后再发自己网站的链接什么的,最近在oschina论坛里发了一些文章,然后呢,今天主要是没有什么内容发布了,所以准备发个小代码。

爬取一下我的oschina论坛内的链接和标题,非常简单,非常容易。

先上代码


from requests_html import HTMLSession
session = HTMLSession()
url = "https://my.oschina.net/u/4798232"
r = session.get(url)
for i in range(1, 12):
    i = str(i)
    urlxpath = '//*[@id="newestBlogList"]/div[1]/div['+i+']/div/a'

    bt = r.html.xpath(urlxpath, first=True).text
    c = urlxpath+'/@href'
    link = r.html.xpath(c, first=True)
    a = ""
    if bt.find(a) == -1:
        print(bt)
        print(link)
    else:
        print(bt.replace(a, ""))
        print(link)

首先呢,这个是通过xpath来进行操作的,具体如何复制xpath可以看我的https://zjzdmc.top/jsfx/47.html这篇文章,里面有动图。

然后导入什么库啥的,都是老生常谈的了,在a标签中,你复制的xpath为//*[@id="newestBlogList"]/div[1]/div['+i+']/div/a这个,然后呢,我们获取标题的话,加上.text这个属性,就会变成文字了,而其中的文字我们可以看f12内的内容,发现其实只有标题,而我们如果需要连接的话,只需要加上这个/@href即可获取链接了。不过目前其实没有找到更好的获取所有文字序列的方法,所以我们直接看最前面的文章id和最后一篇文章的id,记录下来即可。之后我们只需要遍历一下1-12的值即可,然后给字符串添加变量的方法为字符串+变量+字符串即可'//*[@id="newestBlogList"]/div[1]/div['+i+']/div/a'如文字所示,即可获取所有文章的标题了,然后给之前定义的变量urlxpath后面添加上/@href后,即可获取改xpath内的链接了,之后输出即可了。

不过其实一开始确实遇到了些小问题,比如说我获取xpath的时候发现有的文章的xpath,里面的div多了一个[1],多了一个参数,让我非常困惑,因为就这一个有这个参数,但是后来我尝试了一下,没有添加这个[1]发现还是可以获取该文章的内容,所以其实遇到问题还是要自己尝试的。

之后还有一个小问题,就是之前获取标题的时候,后面需要通过.text变成文字,而获取链接的时候,并不需要的,直接就能输出那个值了。link = r.html.xpath(c, first=True)所以我后面的link并没有加.text了。

可以通过json来将标题和链接保存在文件内,亦或者通过open、write来写入到txt文件内,然后可以通过读取来获取所有的链接,之后查询一下文章内的内容的xpath就可以获取所有的文章内容了。进阶的代码等明天写出来再加,如果有什么不懂的可以在评论区留言,我会在看到的时候进行回复。


版权:本文由Datehoer原创,著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接本文链接:https://zjzdmc.top/jsfx/58.html。

文章推荐

热门标签

返回顶部
下面为相关推荐
说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!