关于用户信息的爬虫
爬虫分析
应项目经理的要求,爬取用户信息,具体包括用户昵称、用户头像、用户性别、用户注册时间。接下来分析我们要做的工作。
爬取目标
爬取的目标网站依然是美食天下网。
我们这次主要关注的目标是用户的个人主页。
以该用户为例
我们需要用户的昵称、用户的头像、用户的性别、用户注册的时间。
爬取流程
我们依旧是在scrapy框架的基础上进行爬取。首先读取给定的包含用户id和用户url的表,然后分别访问所有的网页,通过selenium捕捉到网页,传给scrapy引擎,最后提取数据并保存下来。
网页分析
首先是用户昵称
观察它在DOM中的结构。
它的xpath路径为:
//div[@class="subname"]//em/a/text()
然后是用户头像,头像是动态加载出来的,我们使用selenium来等待头像加载完成后在返回页面内容,然后首先获取头像的url,接着继承scrapy的ImagesPipeline来根据头像的url获取头像并保存在本地。
观察头像在DOM中的结构:
它的xpath路径为:
//div[@class="pic"]//img/@src
接着,是用户的性别,在美食天下网站中,用户的性别是通过图片的形式展现的。
它在DOM中的结构为
观察后发现,在标签对应的class属性中,会有man 或者woman 代表用户的性别,我们呢要做的就是获取这个属性,做一次判别。
对应的xpath地址为:
//div[@class="subname"]/i[1]/@class
最后就是用户的注册时间:
它的位置为:
xpath为:
//i[@class="messagenum"]/text()