1.从soup中get到data类

soup中提供了select方法来筛选所需的类。该方法使用方法如下:

articlename = soup.select(‘title‘)

该语句即将soup中所有的title元素放到articlename中。select也有其他用法

articlename = soup.select(‘.data‘) #类前面要加”.”

articlename= soup.select(‘#username‘)#ID这种唯一的元素,前加”#”

articlename= soup.select(‘.publ-list .entry.editor .data‘)#可以组合查找,publ-list类下面的entry.editor类下面的data类,按次序用空格隔开

articlename= soup.select(‘.publ-list .entry.editor .data .title‘)[0].contents[0]#title类中第一个元素的第一个文本内容

我们用如下语句get到该 页中所有的data类,这样就包含了所有的author和title,去除了 页中其他无关的元素,离目标更近了一步

soup.select(‘.publ-list .entry.inproceedings .data‘)

2.data类中筛选所有author与title

这是一个data类的所有内容。

可以看到,一个data类中author和title元素并不是紧密连接的,在每个authro行之间,有“,”和“:”行隔开,在title行下方,还有dataPublished、genre等元素,但下方的元素都是固定的,行数也固定。因此我把一个.data描述为如下的多维数组:

[

[author1,url,name ]

[“,”]

[author2,url,name ]

[“:”]

[
]

[title,name ]

[“datePublished”,content]

[ ]

]

authornum = int((len(articles)-5)/2)

观察元素内容可以看到,authorname和titlename都是唯一的文本,用以下命令获取即可

for i inrange(0,authornum):

authorlist.append(str(articles.contents[i*2].get_text()))

articlename= str(articles.contents[(authornum+1)*2].get_text())

至此,该脚本的所有难点都搞定啦,接下来就水到渠成,理一下逻辑就ok啦

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树 络爬虫urllib211387 人正在系统学习中 相关资源:开源的爬虫软件Heritrix3.1.0_开源爬虫-Java工具类资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月3日
下一篇 2021年1月3日

相关推荐