1. 首页
  2. Python

用python爬取天猫商城手机相关信息

“u003Cdivu003Eu003Cpu003E准备换手机了,但是在网站看很麻烦,一页一页翻还得忍受广告的轰炸,还好我们有爬虫!u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F616900051e04c83973e1″ img_width=”640″ img_height=”404″ alt=”用python爬取天猫商城手机相关信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E话不多说,先上干货:u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E1、 环境: python3u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E2、 模块:requests、time、random、lxml#pip安装即可,安装不了的可以尝试下载whl文件,不知道怎么下载的可以留言u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E3、 url: =后面的内容是”手机”的url编码u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E4、 思路:用xpath获取每个产品的div盒子,然后在取里面信息u003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002F616800054a3412a562ff” img_width=”625″ img_height=”208″ alt=”用python爬取天猫商城手机相关信息” inline=”0″u003E,然后在获取网页page信息,做循环遍历,总的来说不是很难u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E5、 难点:第一个就是cookie,在写这个代码的时候我重新登录以及中途验证了N次,不得不说,反爬做的不错。记得cookie的获取要在登录后获取,中间加入time.sleep()函数。第二点就是保存到文件了,开始我保存到txt文本了,但是非常难看,而且还想用排序等等功能对所有信息整理,最后选择保存到csv,这样就很简单了。最后一个难点就是内容的获取,我这里一共要获取7个内容,但是在爬取过程中,总有一些是无法获取的,也没有在逐一分析,干脆就用try跳过了,这个地方标记下,以后可以尝试重新写下!u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E6、 拓展:url中好多内容都是无用信息,起码在本次爬虫过程中无用,可以尝试写查询版的爬虫,直接查询分类然后爬取内容。网站反爬很严重的话,可以尝试加入代理ip池和cookie池,应该会避免频繁输入验证码的问题,有空试试!u003Cu002Fpu003Eu003Cp class=”list_Paragraph”u003E7、 PS:淘宝本身有api接入我知道的,写这个爬虫呢,主要是练手,并不是就想获取什么什么信息,所以就无视了,介意勿喷!另外提醒大家一点:爬什么信息都可以,但是切记不要传播,有风险哦!u003Cu002Fpu003Eu003Cpu003E大概就这些,好了,我们来写代码吧!u003Cu002Fpu003Eu003Cpu003E首先导入模块u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002F61670005621797eb10f2″ img_width=”353″ img_height=”78″ alt=”用python爬取天猫商城手机相关信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E因为网站对cookie要求很高,就用了requests. Session()方法!u003Cu002Fpu003Eu003Cpu003E定义一个获取源代码的函数u003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F616800054a35bff6827d” img_width=”672″ img_height=”539″ alt=”用python爬取天猫商城手机相关信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E只要不踢出,代码很简单的,中间陆陆续续出现了几次需要输入验证码,如果持续获取不了数据,可以去网页刷新下看看u003Cimg src=”http:u002Fu002Fp9.pstatp.comu002Flargeu002F616d0002ed977eff20b8″ img_width=”688″ img_height=”293″ alt=”用python爬取天猫商城手机相关信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E输入验证码就可以了u003Cu002Fpu003Eu003Cpu003E获取翻页page,在浏览器中打开审查元素,这里我用的是火狐!,然后查找页码所在标签u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002F616a0004a6ed071279da” img_width=”1190″ img_height=”460″ alt=”用python爬取天猫商城手机相关信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E直接用name属性找到input标签,然后抓取value标签属性就ok了,注意结果是个列表,需要转成字符串u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F61670005620f8a11c268″ img_width=”1097″ img_height=”49″ alt=”用python爬取天猫商城手机相关信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E再来分析下url规律,u003Cu002Fpu003Eu003Cpu003E第1页url:https:u002Fu002Flist.tmall.comu002Fsearch_product.htm?q=%E6%89%8B%E6%9C%BA&smToken=567119cb16624286ae258323335af0f9&smSign=5ckOhkLY8%2B0QqXxrBmbpDA%3D%3Du003Cu002Fpu003Eu003Cpu003E第2页url:https:u002Fu002Flist.tmall.comu002Fsearch_product.htm?spm=a220m.1000858.0.0.56662a68UZZywz&s=60&q=%CA%D6%BB%FA&sort=s&style=g&type=pc#J_Filteru003Cu002Fpu003Eu003Cpu003E第3页url:u003Cu002Fpu003Eu003Cpu003E这里要注意第一页和后面的页码的页面url是不一样的,这点在for循环里面用if标记下就可以,然后分析发现,其实url里面的其他内容都可以不要一样可以访问,所以精简下就可以:u003Cu002Fpu003Eu003Cpu003E第1页url:https:u002Fu002Flist.tmall.comu002Fsearch_product.htm?q=%E6%89%8B%E6%9C%BAu003Cu002Fpu003Eu003Cpu003E第2页url:u003Cu002Fpu003Eu003Cpu003Ehttps:u002Fu002Flist.tmall.comu002Fsearch_product.htm? s=60&q=%CA%D6%BB%FAu003Cu002Fpu003Eu003Cpu003E第3页url:u003Cu002Fpu003Eu003Cpu003Ehttps:u002Fu002Flist.tmall.comu002Fsearch_product.htm? s=120&q=%CA%D6%BB%FAu003Cu002Fpu003Eu003Cpu003E这样就简单多了,s属性控制翻页效果,一页60个,所以翻页后的s=60的倍数,ok,我们来写循环吧!u003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F616d0002ed9855b420b0″ img_width=”642″ img_height=”149″ alt=”用python爬取天猫商城手机相关信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E然后我们在找产品的标签,方法和上面一样,都是在审查元素里面,先找到整个div盒子u003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F616800054a3036c4f834″ img_width=”937″ img_height=”612″ alt=”用python爬取天猫商城手机相关信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E然后把div折叠起来,就发现,一页60个产品的div盒子整整齐齐的放在那,而我们需要的内容就在这个div里面,这就简单了u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F616a0004a6ef5e8e74b3″ img_width=”1112″ img_height=”178″ alt=”用python爬取天猫商城手机相关信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E这是我抓取内容的xpath代码,注意的是有的属性中是有空格的。。。(大坑)!!!u003Cu002Fpu003Eu003Cpu003E然后是抓取的店铺名字有的带\n也要替换掉……(第二个大坑)!!!u003Cu002Fpu003Eu003Cpu003E新建空列表,然后把抓取的内容保存到列表中,写到循环下因为每页保存一次,第二页的时候,直接清空列表如此循环:u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F616900051e00835e3e92″ img_width=”1014″ img_height=”413″ alt=”用python爬取天猫商城手机相关信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002F61670005621461dafdf8″ img_width=”1167″ img_height=”318″ alt=”用python爬取天猫商城手机相关信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E注意时间参数,不加很容易就被踢,最后保存到csv,大功告成!!!u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F616800054a32249bbc67″ img_width=”1265″ img_height=”130″ alt=”用python爬取天猫商城手机相关信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E剩下的就是各种对比,最后选出适合自己的手机了!u003Cu002Fpu003Eu003Cpu003E完全代码奉上!u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002F616d0002ed9bc9cccbd5″ img_width=”1162″ img_height=”1558″ alt=”用python爬取天猫商城手机相关信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E最后说一句:iPhone X真心很漂(chou)亮(bao),我们还是买华为 mate10吧u003Cu002Fpu003Eu003Cpu003E看在写这么多的份上,给个赞呗!( ̄ε  ̄)u003Cu002Fpu003Eu003Cpu003E想要源代码的同学可以私信我发送:资料 就可以了!u003Cu002Fpu003Eu003Cu002Fdivu003E”

原文始发于:用python爬取天猫商城手机相关信息

主题测试文章,只做测试使用。发布者:醒百年,转转请注明出处:http://www.cxybcw.com/13360.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code