就这样被你征服网络爬虫

requests库中

apparent_encoding比encoding更加准确,因为encoding只分析了header中的代码,而apparent_encoding是真的在分析内容的

如果用户想要获取网站的信息则使用GET HEAD

如果想要修改或者给网站增加信息则使用 PUT POST PATCH DELETE

patch和put的区别

需求:用户改变了username其他不变

采用patch,仅向url提交username的局部更新请求

采用Put,必须将所有20个字段一并再次传给服务器,未提及的字段会被删除

patch的好处是节省网络宽带

request.request(method,url,**kwargs)

method:请求方式

r=requests.request('GET',url,**kwargs)

r=requests.request('HEAD',url,**kwargs)

r=requests.request('POST',url,**kwargs)

r=requests.request('PUT',url,**kwargs)

r=requests.request('PATCH',url,**kwargs)

r=requests.request('delete',url,**kwargs)

r=requests.request('OPTIONS',url,**kwargs)

七种

Robots协议

Robots Exclusion Standard 网络爬虫排除标准

用于告知网络爬虫那些页面可以抓取,哪些不行。

改头换面的方式:

import requests
url="http://www.amazon.cn/gp/product/B01M8L5Z3Y"
try:
  kv=('user-agent':'Mozilla/5.0')
  r=requests.get(url,headers=kv)
  r.status_code
  r.request.headers
  print(r.text[1000:2000])
except:
  print("爬取失败")
主要是try缩进里面的那些代码
import requests
keyword=""#这里输入关键字
try:
    kv={'wd':keyword}
    r=requests.get("http://www.baidu.com/s",params=kv)
    print(r.request.url)
    r.raise_for_status()
    print(len(r.text))
except:
    print("爬取失败")
    #爬取百度
                     			
import requests
keyword=""#这里输入关键字
try:
    kv={'q':keyword}
    r=requests.get("http://www.so.com/s",params=kv)
    print(r.request.url)
    r.raise_for_status()
    print(len(r.text))
except:
    print("爬取失败")
    #爬取360
原文地址:https://www.cnblogs.com/jimGraymane/p/11581218.html