python 网络爬虫的实例(下)
实例3:百度360搜索关键词的提交
首先,给出百度和360的关键词借口:
百度:http://www.baidu.com/s?wd = keyword
360:http://www.so.com/s?q = keyword
只要替换keyword即可。话不多说,直接上代码:
#ReptileV3_baidu.py
import requests
keyword = 'python'
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("爬取失败")
至于如何提取得到的信息待续。。。
实例4:网页图片、视频获取
#ReptileV4.1_image
import requests
import os
url='http://seopic.699pic.com/photo/50015/0164.jpg_wh1200.jpg'
root = 'G://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("爬取失败")
获取视频的方法类似(不过获取爱奇艺视频的时候播放不了==,以后再解决,复杂的建议参考↓)
[链接][https://github.com/soimort/you-get/blob/1a979b127af7b1d7d0177b113831cdfcaff4a756/src/you_get/extractors/iqiyi.py#L125:30]
ps:可利用爬虫爬取vip视频~
实例5:ip地址查询
#ReptileV5_Ip.py
import requests
url = 'http://m.ip138.com/ip.asp?ip='
try:
r = requests.get(url + '101.198.191.62')
r.raise_for_status()
print(r.text[-500:])
except:
print(r.status_code)
print('爬取失败')
tip:通过网址获取ip的方法,在命令行输入【ping+空格+网址】
如:爱奇艺的ip为111.206.13.61
总结:网页的点击或者查询操作都是通过改变url里的一些参数实现的,像关键词的检索和ip查询,其实性质是一样的。只要看懂url里的实现参数,在进行更改,就能用python模拟这些过程。