这五个技巧都不会,都不好意思说自己会爬虫

目录

前言

一、请求网页方法

二、伪装浏览器与串改请求头

三、获取和设置 Cookies

四、取消自动重定向

五、页面解析

总结


前言

爬虫在开发过程中也有很多复用的过程,今天跟大家分享五个常用的技巧。


一、请求网页方法

python 请求网页一般会使用 requests 这个库,正如其介绍的那样:built for human beings。相当的通俗易懂,简单易用。

import requests

# get 请求
r = requests.get(url)
# 带参数
payload = {
    'key': 'value'
}
r = requests.get(url, params=payload)

# post 请求
r = requests.post(url)
# 带 form 参数
form_data = {
    'key': 'value'
}
r = requests.post(url, data=form_data)
# 带 json 参数
json_data = {
    'key': 'value'
}
r = requests.post(url, json=json_data)


二、伪装浏览器与串改请求头

其实伪装浏览器的本质就是修改请求头(request header),来让服务器难以辨别请求是来自爬虫还是真实用户的浏览器。通常设置 User-Agent 即可应对大部分网站。

headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36'
}
r = request.get(url, headers=headers)

三、获取和设置 Cookies

这里就涉及到 requests 发送请求后的返回值了,也就是上面例子中的 r。用户存储在浏览器的 Cookies 通常是浏览器根据返回头(response header)中的 Set-Cookie 的值来设置的,在 python 中这样获取:

r = request.get(url)
cookie = r.headers.get('set-cookie').split(';')[0].strip()

四、取消自动重定向

nodejs 的技巧文章中解释过,自动重定向可能会使用不正确的 Cookie 导致结果永远不对,因此有时需要取消这个功能

r = requests.get(url, allow_redirects=False)

五、页面解析

可以使用 beautifulsoup:

from bs4 import BeautifulSoup
r = requests.get(url)
# 这个 html.parser 是解析器,你也可以设置其他的,比如:lxml,如果你要解析 XML 文档,那么你就要把它设置为:lxml-xml。当然使用前要安装 lxml。
soup = BeautifulSoup(r.text, 'html.parser')
# 例:找到并打印页面中的所有超链接
for item in soup.find_all('a'):
    print('{} - {}'.format(item.get_text(), item.get('href')))

总结

以上就是一些常用的爬虫技巧总结,大家学习掌握后以后也能省些事情。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值