php爬虫严选,爬虫:网易严选

爬虫:网易严选

作者:石头炒面

联系方式:903565442@qq.com

声明:任何形式的转载都需要过问本人,否则后果自负。本文技术入门级,所以请不要引起没必要的争论。互相学习就好。

摘要:网易严选是国内知名的电商平台,其商品数量繁多,所以在网站中可以大量的挖掘其数据进行商业分析,本文章采用requests技术对网站进行爬虫分析,并对其后的数据结果进行处理分析。

1.爬虫篇

1.1爬虫包的总述

题主这里对爬虫技术做简单的归纳和综述。python爬虫的依赖包常见的有三种:requests,urllib和selenium。其中urllib为python的内置包,其使用操作可以满足大多的网络爬虫工作,是最原始的爬虫包,其使用方法简单,容易上手。requests是基于urllib整合的爬虫包,其在urllib的基础上继续升华,是目前使用最广泛,应用最简单的爬虫包。selenium的角色比较特殊,网站的服务器对爬虫的识别是网站反爬的必要环节,而爬虫对服务器的伪装是反反扒的关键。但是不管的requests还是urllib都无法完全模拟人类访问服务器的操作,但是selenium做到了,selenium或许是反爬虫的顶端,但是对比另外的两个包,selenium往往要花更长的时间去获取数据,所以我建议能不用就不用。

1.2开始爬虫

首先要建立自己的工作目录:网易严选爬虫(文档)。

建立第一个py文件:获取网页的html代码。

这里插一句,不管是任何形式的网络爬虫,是要从网页中获取信息,那么网页中的信息是如何呈现的呢?很简单,网页的信息是Html5代码呈现的,我们都知道互联网前端的三个常用工具:HTML,CSS和JavaScript,这三者共同呈现了我们能够获取信息的网页。而其中的HTML就是呈现信息的最基本载体,这并不是说要我们精通前端的技术,但是一定要懂得其中的道理,才能从网站中获取有用的信息。

接下来我们上代码:

import requests as rq

#调用requests包

url='http://you.163.com/item/list?

categoryId=1005000&_stat_area=nav_2&_stat_referer=activityhd'

num = 0

#设定要爬取的网站

def get_html(url,num):

'指南:输入url,在目录下生成html.txt接受获取的html代码,并返回rq对象。'

headers ={

'Referer': 'http://you.163.com/item/list?categoryId=1010000&_stat_area=nav_3&_stat_referer=activityhd',

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763'}

#设置headers

a = rq.get(url,headers = headers)

html_txt = open('%d.html'%num,'w',encoding='utf-8')

#这里声明编码方式以避免写入的错误

html_txt.write(a.text)

html_txt.close()

return a

运行这段代码,就可以获得网易严

选中网页的url。运行如上代码可以在txt中看到爬取的html代码。

那么问题来了。为什么在txt中观看呢?因为这种非常长的片段在shell中显示会造成卡顿,IDLE并不是为了阅读大量的文字专门设计的程序。这里可以用notepad++阅读html代码,如果完全没有基础,可以学习小甲鱼的课程进行简单学习。

那上面的部分就是如何进行一次简单的爬虫,这里面涉及到的requests包的应用,包括web技术的理解都是爬虫的基础,爬虫实际上考验的不只是爬虫包的应用,而更多的是web技术的基础。如果成功的运行代码,可以继续学习。

1.3业务的介绍

在这里要对业务方面进行说明:

我们想获取所有商品的名称,价格等,那么首先要对网站进行观察,可以看到其所有商品都罗列在网站上,网站的结构和商品的分类相对应,分为居家生活,服饰箱包,美食酒水,个护清洁,母婴亲子,运动旅行,数码家电[图一]。点击每个按钮可以跳转到对应的url,配合上一节学到的知识,如果我们获取每一个商品页面的html并对其进行分析,就可以获取到所有商品的信息。

8d20edfde50baf47cb10f7f85e17badc.png

1.4获取各个种类网页的源代码并进行分析获取数据

我们可以从web中获取每一类商品的url,但是这对于比较少的数据来讲是比较多余的,这里主张不要为了技术而技术,那么我们可以手动点击所有的按钮,并记录url,存入一个py的list中。

list_url = [

'http://you.163.com/item/list?categoryId=1005000&_stat_area=nav_2&_stat_referer=activityhd',

'http://you.163.com/item/list?categoryId=1010000&_stat_area=nav_3',

'http://you.163.com/item/list?categoryId=1005002&_stat_area=nav_4',

'http://you.163.com/item/list?categoryId=1013001&_stat_area=nav_5',

'http://you.163.com/item/list?categoryId=1013001&_stat_area=nav_6',

'http://you.163.com/item/list?categoryId=1013001&_stat_area=nav_7',

'http://you.163.com/item/list?categoryId=1013001&_stat_area=nav_8',

'http://you.163.com/item/list?categoryId=1013001&_stat_area=nav_9',

]

**这么做并没有很丢人,小于十的机械操作没必要为之设计一个脚本。**

我们为之写入一个简单的for in语句对每一个网页进行html的获取,并存储到工作目录中以便阅读。

num = 0

#num用于标记列表中的url,并作为获取的html代码文件的命名

for url in list_url:

get_html(url,num)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值