1、获取京东某个商品的信息
importrequests
url= 'https://item.jd.com/100008348542.html'
try:
r=requests.get(url)
r.raise_for_status()
r.encoding=r.apparent_encodingprint(r.text[:1000])except:print('爬取失败!')
2、获取亚马逊某个商品的信息
实例2与实例1存在一些区别,亚马逊网站会进行来源审查
importrequests
url= 'https://www.amazon.cn/dp/B01N6KMXF0/ref=s9_acsd_ri_bw_r2_r0_3_i?pf_rd_m=A1U5RCOVU0NYF2&pf_rd_s=merchandised-search-3&pf_rd_r=J68K7WQ4X4HQFMA4V7CF&pf_rd_t=101&pf_rd_p=c3aaa05e-9c4b-4c78-a96e-72f860b7d59d&pf_rd_i=144154071'r=requests.get(url)print(r.status_code)print(r.request.headers)
结果:503
{'User-Agent': 'python-requests/2.23.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
url地址是亚马逊某个商品的链接
从输出的headers可以看出’User-Agent’: ‘python-requests/2.23.0’,网站会限制其访问
解决:将headers参数设置为user-agent:Mozilla/5.0,来标识为浏览器请求
importrequests
url= 'https://www.amazon.cn/dp/B01N6KMXF0/ref=s9_acsd_ri_bw_r2_r0_3_i?pf_rd_m=A1U5RCOVU0NYF2&pf_rd_s=merchandised-search-3&pf_rd_r=J68K7WQ4X4HQFMA4V7CF&pf_rd_t=101&pf_rd_p=c3aaa05e-9c4b-4c78-a96e-72f860b7d59d&pf_rd_i=144154071'kw = {'user-agent': 'Mozilla/5.0'}try:
r= requests.get(url,headers=kw)
r.raise_for_status()
r.encoding=r.apparent_encodingprint(r.text[:1000])except:print('爬取失败!')
3、百度/360关键词提交
要实现关键词的提交,首先要知道两个搜索引擎的关键词接口
百度:
http://www.baidu.com/s?wd=keyword
360:
http://www.so.com/s?q=keyword
代码:
importrequests
url= 'https://www.so.com/s'kv= {'q': 'python'}try:
r= requests.get(url, params=kv)
r.raise_for_status()
r.encoding=r.apparent_encodingprint(r.request.url) #返回搜索python时的url链接:https://www.so.com/s?q=Python
print(len(r.text))except:print('爬取失败!')
4、网络图片的爬取和存储
importrequestsimportos
url= 'http://kr.shaodiyejin.com/file/2020/0228/smallee757776baa681e0f5af2fcf87084932.jpg' #图片链接
root = 'D://pics//' #图片保存路径,或者'D:\pics\'
path = root+url.split('/')[-1] #图片保存路径+原图片的名字
try:if not os.path.exists(root): #目录不存在时则创建
os.mkdir(root)if notos.path.exists(path):
r=requests.get(url)
f= open(path, 'wb')
f.write(r.content)
f.close()print('文件保存成功')else:print('文件已存在')except:print('图片获取失败')
当然也可以爬取动态或者短视频,只需要有正确的链接地址
5、ip地址归属地查询
importrequests
url= "http://ip.tool.chinaz.com/"
try:
r=requests.get(url+'166.111.4.100')
r.raise_for_statusprint(r.status_code)
r.encoding=r.apparent_encodingprint(r.text[18000:19000])except:print('获取失败')
注意:
1、要获取网站的提交格式(最重要)
这是查询ip地址:202.204.80.112时,网址的格式
不同的网站格式不同,这个自己查看
2、不同网站返回的信息不同,以上面为例,在返回的r.text中,ip地址归属地在18000~19000字节之间,这个需要字节去找。r.text是返回的所有信息
3、有些网站可能不行