Python爬虫的学习入门

来自mooc的学习

1.京东爬虫

import requests

url ="https://item.jd.com/2967929.html"
try:
    r = requests.get(url)
    r.raise_for_status() #如果返回的是200 不产生异常 否则产生异常
    print(r.encoding) #从HTTP header中猜测的响应内容编码方式
    print(r.apparent_encoding) #从内容分析出的响应内容编码方式(备选编码方式)
  #  r.encoding = r.apparent_encoding
    print(r.text[:1000]) #[:1000]表示要爬去多少个字符
except:
    print("爬取失败")

2.亚马逊商品爬虫

# import requests
# r = requests.get("https://www.amazon.cn/gp/product/B01M8L5Z3Y")
# print(r.status_code)
# print(r.encoding)
# print(r.request.headers) #发现是由'User-Agent': 'python-requests 发送的请求
# kv = {'user-agent':'Mozilla/5.0'}# 把header设置成个浏览器 让亚马逊误会
# url = "https://www.amazon.cn/gp/product/B01M8L5Z3Y"
# r = requests.get(url,headers = kv) //替换掉他的headers
# print(r.status_code)
# print(r.request.headers) //查看下他隐藏的东西
# print(r.text[:1500])


import requests
url = "https://www.amazon.cn/gp/product/B01M8L5Z3Y"
try:
    kv = {'user-agent':'Mozilla/5.0'}
    r = requests.get(url,headers = kv)
    r.raise_for_status()
    r.encoding = r.apparent_encoding
    print(r.text[1000:2000])
except:
    print("爬取失败")

3.百度和360搜索提交

# import requests
# kv = {'wd':'Python'}
# r = requests.get("http://www.baidu.com/s",params = kv) #表示提交自己的请求
# print(r.status_code) #查看状态码是否是200
# print(r.request.url) #搜索自己要的东西
# print(len(r.text))
'''
先构建键值对表示搜索的东西 
百度的关键词接口:
http://www.baidu.com/s?wd=keyword
360的关键词接口
http://www.so.com/s?q=keyword
'''

import requests
keyword = "Python"
try:
    kv = {'wd':keyword}
    r = requests.get("http://www.baidu.com/s",kv)
    print(r.request.url)
    r.raise_for_status()
    print(len(r.text))
except:
    print("爬取失败")

 

4.网络图片的爬取和存储

'''
import requests
path = "E:/abc.jpg" #要存储的图片位置在哪里
url = "http://img0.dili360.com/pic/2018/08/21/5b7b6ffc7ec598555144457.jpg@!rw9"

r = requests. get(url)
print(r.status_code)
#把想要的图片保存为文件
with open(path,'wb') as f:
    f.write(r.content)
f.close()
#首先打开一个文件,将这个文件定义为文件标识符f  然后将返回的内容写到这个文件中
#r.content 表示返回的二进制形式 正好是wb
'''
import requests
import os
url = "https://v.youku.com/v_show/id_XNzI5NjA1ODMy.html"
root = "D://pics//" #定义一个根目录
path = root + url.split('/')[-1]# 将文件的目录表示为根目录加他的名字保存为原来的名字

try:
    if not os.path.exists(root):
        os.mkdir(root) #判断根目录是否存在 如果说根目录不存在 那么就建立一个根目录
    if not os.path.exists(path): #首先判断一个文件是否不存在
        r = requests.get(url)
        with open(path,'wb') as f:
            f.write(r.content)
            f.close()
            print("文件保存成功")
    else:
        print("文件已经存在")
except:
    print("爬取失败")

 

5.IP地址归属地的查询

import requests
url = "http://m.ip138.com/ip.asp?ip="
try:
    r = requests.get(url+'202.204.80.112')
    r.raise_for_status()
    r.encoding = r.apparent_encoding
    print(r.status_code)
    print(r.text[-500:]) #尽量约束一个条件输出有效的
except:
    print("爬取失败")

 

你可能感兴趣的:(Python)