使用requests和re库爬取淘宝商品价格信息

前言

首先本次代码的大部分框架基于北京理工大学嵩天老师的mooc爬虫教程。感谢嵩老师的教育。相信很多人看了关于淘宝书包案例的视频后自己尝试,却发现只能出现表头,而不能生成完整的商品价格信息,如下图所示。

在这里插入图片描述

一、问题分析

这是因为当年嵩天老师录制视频的时候淘宝还没有反爬机制,不过等我弄得时候已经2019年了。淘宝有了反爬机制,所以你的程序是对的没有报错,但是却爬取不到任何信息。那么如何解决呢?
首先认真听课的肯定知道老师之前降了亚马逊网站的案例,案例中更改了user-agent,此次就派上用场了。

二、什么是user-agent

User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。

常常要用server抓资料时,都会碰到直接使用wget和curl被服务器拒绝的状况。通常简单加个user-agent伪装一下就会过了。

三、怎么获取user-agent

下面以火狐浏览器为例,打开浏览器,按键盘F12,即可进入开发者模式,左上角点击网络,如果左边的下部分没有我那么多内容,刷新一下网页就好了。然后注意右下角就有user-agent。此外还有很多方法,大家有兴趣可以去查阅,本次不在列举(毕竟重点不是这个)。
在这里插入图片描述然后我们就可以去编写代码,部分代码如下图:
在这里插入图片描述运行后还是不行。后来经过我到处求教,光改user-agent是不够的,淘宝反爬机制比较厉害,我们还需要改一下cookie。那么怎么查找我们所需要的cookie呢,也是在网页点击F12,然后切换到网路,这时候注意,左下部分需要选择如图所示的项目,右边标记处就是我们要的cookie。

在这里插入图片描述这下彻底解决了。下面给出全部代码。如果帮助到了您, 麻烦给个点赞呀,谢谢了,第一次写文章,好激动!
ps(小技巧):cookie的链接一般都比较长,用idle编写的小伙伴肯定很苦恼不会自动换行。python中可以用"\"来跨行输入。

四、全代码

#CrowTaobaoPrice.py
import requests
import re

def getHTMLText(url):
     kv = {
   'cookie':'miid=1383361561635576948; cna=1o2kFQMptWsCAXWIHsT75Bd1; isg=BJmZtn30IPAgi_ymuz_P0izHq\
4WzjqaCjeTFD7tOgkA_wrpUAnO0qDuUxEYR4SUQ; l=dBL6AraIqIK-oNKFBOfNNuIRXxbt0IRV1kPzw4ZCCICP_UfH5XXNWZLt-BLM\
Cn1VnsOyJ35u5_4JB88kQyIqJxpsw3k_J_bt3dYh.; tracknick=%5Cu989C%5Cu747E%5Cu989C%5Cu747E%5Cu989C%5Cu747E; _c\
c_=V
  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值