Error in user YAML: (<unknown>): found a tab character that violate indentation while scanning a plain scalar at line 3 column 3
---
- oeasy Python 0542
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
- 本教程同步发布在:
- 个人网站: `https://oeasy.org`
- 蓝桥云课: `https://www.lanqiao.cn/courses/3584`
- GitHub: `https://github.com/overmind1980/oeasy-python-tutorial`
- Gitee: `https://gitee.com/overmind1980/oeasypython`
---- 上次爬了 baidu.com
- 找到了三组链接
- 然后分别遍历
- 但是 headers 生成的方法有点麻烦
- 有更快的生成headers的方法吗?
firefox https://baidu.com &
- 复制 找到的请求头
- 可以 直接把所有的header
- 复制到剪贴板中
- 为什么要复制这些headers呢?
-
因为有些地方访问比较严格
- 除了Use-Agent
- 还要求其他的header
- 否则不给看
-
这就需要更彻底地模仿浏览器
- 需要把这个请求头做成字典
- 还有什么更快更好的办法吗?
- 复制curl命令
- 执行结果
- 可以直接构造headers和cookie
- 也可以用uncurl 命令 获得相应的py程序
- 感觉这还是不太本质可以自己根据curl命令获得headers吗?
- curl 命令本质上是个字符串
- 最终需要构成的headers是一个字典
- 可以将curl命令粘贴到三引号之内
curl = """curl 'https://www.baidu.com/' --compressed -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel ..."""
l = curl.split(" -H ")
headers = dict()
for item in l[1:]:
index = item.index(": ")
key = item[1:index]
value = item[index+2:-1]
headers[key] = value
headers.setdefault(key,value)
url = l[0].replace("curl '","").replace("' --compressed",'')
print("import requests")
print("from lxml import etree")
print("headers = {")
for header in headers:
print("\t'" + header + "': '" + headers[header] + "',")
print("}")
print("response = requests.get('"+url+"',headers=headers)")
- 输出结果最终输出重定向即为目标程序
- 这次复制了 curl命令
- 可以用网站 curlconverter.com
- 也可以用 uncurl命令
- 将curl命令转化为 py程序
- 百度这种搜索引擎是怎么形成的呢?🤔
- 下次再说
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。









