京东商品
import requests
def getHTMText(url):
try:
r=requests.get(url,timeout=30)
r.raise_for_status() #如果状态不是200,引发HTTPError异常
r.encoding=r.apparent_encoding
return r.text
except:
return "产生异常" #通用方法
if __name__=="__main__": #注意下划线是敲击两次不是一次_
url="http://www.baidu.com"
print(getHTMText(url))
ur2="www.baidu.com"
print(getHTMText(ur2))
亚马逊商品
import requests
url='https://www.amazon.cn/dp/B073B836F3?ref_=Oct_DLandingS_D_f669e30d_62&smid=A26HDXW89ZT98L'
try:
#print(r.request.headers) head部分‘'User-Agent': 'python-requests/2.23.0',被拒绝访问
kv={
'user-agent':'Mozilla/5.0'}
r = requests.get(url, headers=kv)
print(r.request.headers)
r.raise_for_status() # 如果状态不是200,引发HTTPError异常
r.encoding = r.apparent_encoding
print(r.text[:1000])
except:
print("爬取失败")
搜索引擎提交关键词
#百度关键词接口http://www.baidu.com/s?wd=keyword
#360关键词接口http://www.so.com/s?q=keyword
import requests
keyword='panda'
try:
kv = {
'q': keyword}
#kv = {'wd': keyword}
url='http://www.so.com/s'
#url='http://www.百度.com/s'
r=requests.get(url,params=kv)
print(r.status_code)
print(r.request.url) #点击百度的输出网址,会有一个安全验证。360没有
print(len(r.text))
except:
print("爬取异常")
网络图片爬取和存储
#网络图片链接的格式:http://www.example.com/picture.jpg
import requests
import os
root='D:/Python/Workspace/爬虫基础/'
url='https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1586789309749&di=ce2746db07b5089a67d10547ed88e8bd&imgtype=0&src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201506%2F02%2F20150602134542_wFcS5.jpeg'
#百度搜索出的图片,尾部是jpej,看来也是可以的
#path=root + url.split('/')[-1]
#注意path为保存名称,文件名为网址/分隔的最后一个,即图片名
#但因为图片为.jpeg不符合保存格式,所以会失败
path=root+'abd.jpg'
try:
if not os.path.exists(root): #当前根目录是否存在
os.mkdir(root)
if not os.path.exists(path): #文件是否存在
r=requests.get(url)
print(r.status_code)
#将二进制图片保存在文件
with open(path,'wb') as f:
f.write(r.content)
#r.contenr为二进制形式
print("ok")
f.close() #文件关闭
print("文件保存成功")
else:
print("文件已存在")
except:
print("爬取失败")
ip地址归属地的自动查询
#http://m.ip138.com/ip.asp?ip=ipaddress
import requests
url='http://m.ip138.com/ip.asp?ip='
try:
r=requests.get(url+'202.204.80.112')
r.status_code
r.encoding=r.apparent_encoding
print(r.text[-500:])
#选取一个简单的域名,以防访问超时
except:
print("爬取失败")
ps:学习链接 https://www.icourse163.org/learn/BIT-1001870001?tid=1206951268#/learn/announce