Python 爬虫学习

一、开始


首先呢,需要搭建一个 python 的编译环境,具体步骤请看:Sublime 使用笔记(一):安装 & 配置编译环境



二、安装工具包


需要用到 requests json openpyxl 这三个工具包。因为 python 自带了 json 工具包,所以只需要安装另外两个就好。步骤如下:

  1. 按 win键 + R,输入 cmd 后回车,打开命令提示符,并输入 pip install requests
  2. 待安装完成后,输入 pip list,若在列表中看到了 requests ,则说明安装成功。
  3. 顺便补充一下,若在安装过程中提示 pip 版本可以进行更新,则可以输入 python -m pip install --upgrade pip 进行升级。
  4. 另一个工具包同理


三、开始写代码


import requests

URL = 'https://baidu.com'

resp = requests.get(URL)
print(resp.text)

解释一下,import 关键字用来引用所需的工具包。get 方法用于向网站所在的服务器发送请求,并且把返回的内容存入一个变量 resp 中。最有一句,print 是输出语句,.text 就是获取请求返回的文本。这样就可以输出我们获取到的网页了。



四、补充


在使用 requests.get() 来请求某些网页的时候,可能需要加上请求头,即把爬虫伪装成浏览器来获得访问权限。

import requests

URL = ' https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=43139143227&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1'
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Safari/537.36 Edg/89.0.774.45'}

resp = requests.get(URL, headers = header)
print(resp.text)

请求头添加方法为:

  1. 按 F12 打开调试,点击 “网络”,如果没有内容的话就刷新一下页面。
  2. 选中自己 URL 对应的请求,点击 “标头”。
  3. 找到 User-Agent 这一项,复制下来。
  4. 如上面代码所示添加到 requests.get() 中。

在这里插入图片描述


五、将爬取到的数据进行整理


我们需要使用 json.loads() 方法来整理数据,但是用改方法处理的数据必须以大括号开头、结尾,所以在这之前,我们需要用 .replace() 方法来进行预处理。

import requests
import json

URL = {'https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=43139143227&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1'}
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Safari/537.36 Edg/89.0.774.45'}

resp = requests.get(URL)
content = resp.text.replace('fetchJSON_comment98(', '').replace(');', '')
json_data = json.loads(content)


六、选取需要用到的数据


要理解这其中的原理,需要一些前端的知识,可以参考一下 《Dreamweaver CS6 完全自学教程》笔记 但是由于我学的也不深,所以仅作参考,仅作参考。

具体代码如下:

import requests
import json

URL = {'https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=43139143227&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1'}
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Safari/537.36 Edg/89.0.774.45'}

resp = requests.get(URL)
content = resp.text.replace('fetchJSON_comment98(', '').replace(');', '')
json_data = json.loads(content)
comments = json_data['comments']
for item in comments :
    color = item['productColor']
    size = item['productSize']
    print(color)
    print(size)


七、将数据放到 Excel 表格中


这一步要用到如下方法:

  1. openpyxl.Workbook() : 创建一个 Excel
  2. .create_sheet() : 在 Excel 中创建一个工作表
  3. append([第一列, 第二列, ...]) : 将数据添加到 Excel 中
  4. .save('路径/文件名.xlsx') 将创建的 Excel 保存到一个 Excel 文件中

import requests
import json
import openpyxl

header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Safari/537.36 Edg/89.0.774.45'}
URL = ' https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=43139143227&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1'

wk = openpyxl.Workbook()
sheet = wk.create_sheet()

resp = requests.get(URL, headers = header)
content = resp.text.replace('fetchJSON_comment98(', '').replace(');', '')
json_data = json.loads(content)
comments = json_data['comments']
for item in comments:
    color = item['productColor']
    size = item['productSize']
    sheet.append([color, size])
wk.save('py爬虫真好玩.xlsx')


八、碎碎念


本篇博客也算是浅尝辄止,虽说我知道 python 应用广泛、功能强大,我早晚会学它,但是由于个人规划及课程安排,在近期内可能不会在这方面深耕。由于各种机缘巧合,这几天简单的学习了一下 python 爬虫,也因此写下这篇博客,权当是为以后的学习做少许准备(希望会有帮助。对于文中的错误,也希望看到的各位能及时、直白的指出,谢谢~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SP FA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值