show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次爬了 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程序
- 百度这种搜索引擎是怎么形成的呢?🤔
- 下次再说