网络爬虫 - 规则

实例1 京东商品页面的爬取

查看robots协议

import requests
# from pprint import pprint

url = "https://item.jd.com/100009177424.html"
try:
    r = requests.get(url) 
#     print(r.status_code) #HTTP请求的返回状态,200表示连接成功,404表示失败
#     print(r.encoding) #从HTTP header中猜测的响应内容编码方式
#     print(r.apparent_encoding) #从内容中分析出的响应内容编码方式(备选编码方式)
    r.encoding = r.apparent_encoding
    print(r.text[:1000])
    # pprint(r.text[:1000]) 
except:
    print("Fail!!!")

在这里插入图片描述

实例2 亚马逊商品页面的爬取

robots

import requests

url = "https://www.amazon.cn/gp/product/B01M8L5Z3Y"
try:
    kv = {'user-agent': 'Mozilla/5.0'} #不加 -> 503
    r = requests.get(url, headers=kv) 
#     print(r.status_code) #HTTP请求的返回状态,200表示连接成功,404表示失败
#     print(r.encoding) #从HTTP header中猜测的响应内容编码方式
#     print(r.apparent_encoding) #从内容中分析出的响应内容编码方式(备选编码方式)
#	  print(r.request.headers) 
    r.raise_for_status() #如果转态不是200,引发HTTPError错误
    r.encoding = r.apparent_encoding
    print(r.text[1000:2000]) #HTTP响应内容的字符串形式,即,url对应的页面内容
except:
    print("Fail!!!")

在这里插入图片描述

实例3 百度/360搜索关键词提交

百度

r = requests.get("http://www.baidu.com/s", params=kv) #params : 字典或字节序列,作为参数增加到url中
print(r.status_code)
print(r.request.url)

在这里插入图片描述
百度安全验证
在这里插入图片描述
原因:使用无头浏览器
解决方案

kv = {'wd': 'Python'}
headers = {'user-agent': 'Mozilla/5.0'}
r = requests.get("http://www.baidu.com/s", params=kv, headers=headers) #params : 字典或字节序列,作为参数增加到url中
print(r.status_code)
print(r.request.url)

在这里插入图片描述

360搜索

在这里插入图片描述

360的关键词接口
http://www.so.com/s?q=keyword

import requests

keyword = "Python"
try:
    headers = {'user-agent': 'Mozilla/5.0'} #不加 -> 503
    r = requests.get("http://www.so.com/s", headers=headers, params=kv) #params : 字典或字节序列,作为参数增加到url中
#     print(r.status_code) #HTTP请求的返回状态,200表示连接成功,404表示失败
#     print(r.encoding) #从HTTP header中猜测的响应内容编码方式
#     print(r.apparent_encoding) #从内容中分析出的响应内容编码方式(备选编码方式)
#	  print(r.request.headers) 
    print(r.request.url)
    r.raise_for_status() #如果转态不是200,引发HTTPError错误
    r.encoding = r.apparent_encoding
    print(len(r.text))
except:
    print("Fail!!!")

在这里插入图片描述
在这里插入图片描述

DogeDoge搜索

DogeDoge的关键词接口
https://www.dogedoge.com/results?q=keyword

import requests

keyword = "Python"
try:
    kv = {'q': keyword}
    headers = {'user-agent': 'Mozilla/5.0'} #不加 -> 503
    r = requests.get("https://dogedoge.com/results", headers=headers, params=kv) #params : 字典或字节序列,作为参数增加到url中
#     print(r.status_code) #HTTP请求的返回状态,200表示连接成功,404表示失败
#     print(r.encoding) #从HTTP header中猜测的响应内容编码方式
#     print(r.apparent_encoding) #从内容中分析出的响应内容编码方式(备选编码方式)
#	  print(r.request.headers) 
    print(r.request.url)
    r.raise_for_status() #如果转态不是200,引发HTTPError错误
    r.encoding = r.apparent_encoding
    print(len(r.text))
except:
    print("Fail!!!")

在这里插入图片描述
在这里插入图片描述

实例4 网络图片的爬取和存储

在jupyter中显示图片

Python图片爬取方法总结

实例5 IP地址归属地自动查询

http://m.ip138.com/ip.asp??ip=ipadderess
在这里插入图片描述
https://ipchaxun.com/ipadderess
在这里插入图片描述

import requests

url = "https://ipchaxun.com/"
try:
    headers = {'user-agent': 'Mozilla/5.0'}
    r = requests.get(url = url + '202.204.80.111', headers=headers)
    print(r.status_code)
    print(r.request.url)
    r.raise_for_status()
    r.encoding = r.apparent_encoding
    print(r.text)
except:
    print("爬取失败")

r.request.url

在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值