【无标题】

Python第四天——requests实战

1. 获取百度网页并打印

【无标题】
1)模仿:获取淘宝网页并打印
【无标题】

import requests
url=('http://www.taobao.com')
r=requests.get(url)
r.encoding=r.apparent_encoding
print(r.text)

2、获取图片地址

1)错误
【无标题】
【无标题】
下载下来的图片为空

2)正确的
换个浏览器图片网址
[https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fhbimg.b0.upaiyun.com%2F67cab747d32fac3de0a3edd18229ca3407c2e7a051fa0-Luaxcp_fw658&refer=http%3A%2F%2Fhbimg.b0.upaiyun.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1639793718&t=58d26307736eba1374b0981847ace984]
然后成功显示美女图片

然后我发现了图片地址的问题,1)之所以错误是我的图片地址不对,添加的是网页链接不是图片地址的链接,重新添加图片链接也成功了
【无标题】

3、获取视频

【无标题】
与获取图片方法一样,把图片地址换成视频地址(不能是网页视频地址),输出的图片格式换成视频格式即可。

4、搜狗关键词搜索爬取

1)错误
【无标题】
csdn查找方法:

2)之正确
【无标题】

import requests
#指定url
url='https://www.sogou.com/web'
kw=input('ernter a word:')
header={
   'User-Agent':'Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Mobile Safari/537.36'
    
}
param={
    'query':kw
}
#发起请求,做好伪装
response=requests.get(url=url,params=param,headers=header)
#获取相应数据
content=response.text
fileName=kw+'.html'
#将数据保存在本地
with open(fileName,'w',encoding='utf-8') as fp:
    fp.write(content)
print(fileName,'爬取完成!')

虽然没完全显示,但确实有
【无标题】

5、爬取百度翻译

找到接口:
【无标题】
获取百度翻译接口数据及请求方式:
【无标题】
1)问题:

【无标题】
参考:

https://www.fujieace.com/python/indexerror-list-index-out.html

可能是超出范围?
试着换了一个字的,成功了…

【无标题】
去掉注释的打印语句,输入“你好”成功了

【无标题】
输入“您好”,有错误提示
【无标题】

import json
import requests
url='https://fanyi.baidu.com/sug'
word=input('请输入想要翻译的词语或者句子:')
data={
    'kw':word
}
headers={
    'User-Agent':'Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Mobile Safari/537.36'
}
reponse=requests.post(url=url,data=data,headers=headers)
dic_obj=reponse.json()
print(dic_obj)
filename=word+'.json'
with open(filename,'w',encoding='utf-8')as fp:
    json.dump(dic_obj,fp=fp,ensure_ascii=False)
j=dic_obj['data'][1]['v']
print(j)

6、爬取豆瓣电影榜单

【无标题】
换了导入的顺序和reponse(虽然我觉得没有影响…)

【无标题】
链接内容为空,怪不得什么都没有
【无标题】
换成豆瓣官网:

https://movie.douban.com/chart

出现错误
【无标题】

查找问题:

https://www.cnblogs.com/loveprogramme/p/9379532.html
https://chuanchuan.blog.csdn.net/article/details/120928999

这些没成功

换请求的url
成功了
【无标题】

7、jk爬取

【无标题】
源代码:(from 川川)

import requests
import re
import urllib.request
import time
import os
header={
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36'
}
url='https://cn.bing.com/images/async?q=jk%E5%88%B6%E6%9C%8D%E5%A5%B3%E7%94%9F%E5%A4%B4%E5%83%8F&first=118&count=35&relp=35&cw=1177&ch=705&tsc=ImageBasicHover&datsrc=I&layout=RowBased&mmasync=1&SFX=4'
request=requests.get(url=url,headers=header)
c=request.text
pattern=re.compile(
    r'<div class="imgpt".*?<div class="img_cont hoff">.*?src="(.*?)".*?</div>',re.S
)
items = re.findall(pattern, c)
# print(items)
os.makedirs('photo',exist_ok=True)
for a in items:
    print(a)
for a in items:
    print("下载图片:"+a)
    b=a.split('/')[-1]
    urllib.request.urlretrieve(a,'photo/'+str(int(time.time()))+'.jpg')
    print(a+'.jpg')
    time.sleep(2)


上一篇:python爬虫


下一篇:解决:name 'requests' is not defined