我已经安装了requests库,在Anaconda中查看已经安装了request库,但是怎么去在anconda中使用request库,我还不懂,是不是在spyter里就能直接编写以request库的爬虫
pycharm -setting里面选anaconda安装的python解释器作为项目使用的解释器,然后就是正常开发使用了。
嗯,个人建议,题主找些类似的书或者视屏看一下,感觉理论太模糊了。
python有对应的模块就可以直接使用了。一些Demo,题主可以参考一下:
#使用cookie实现登录
from urllib import request
from http.cookiejar import CookieJar
from urllib import parse
#不使用Cookie去请求主页
liruilong_url = "http://www.renren.com/441992574/profile"
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'
,"Cookie":"anonymid=jzuwr9qvhzckya; depovince=GW; _r01_=1; JSESSIONID=abck6aHRYaKfhbTelbxZw; ick_login=933914fc-d2dc-4ad9-bc04-984b44895554; jebe_key=e592ad6f-ac4f-4c45-b82d-bd993b4700fb%7C98c73539fee1cffb5f9cc1945695ee9a%7C1566975619199%7C1%7C1566975619913; wp_fold=0; jebecookies=ce08c92d-fd6b-423b-a48a-3c3b5135e94f|||||; _de=A4BF4EA119AD552CA61D7350ED501D1C6DEBB8C2103DE356; p=59e59693e5f9e9e207fbea357eb1229c4; ap=441992574; first_login_flag=1; ln_uact=1224965096@qq.com; ln_hurl=http://hdn.xnimg.cn/photos/hdn421/20130209/1700/h_main_Ty4X_277a00000280111a.jpg; t=8c790067f935cd2df3f28ffc41d798934; societyguester=8c790067f935cd2df3f28ffc41d798934; id=441992574; xnsid=28f8b7e9; ver=7.0; loginfrom=null; jebe_key=e592ad6f-ac4f-4c45-b82d-bd993b4700fb%7C3290e3689bd6952d3672b3892c4aa0ca%7C1566976101710%7C1%7C1566976102421"
}
req = request.Request(url=liruilong_url, headers=headers)
resp = request.urlopen(req)
#print(resp.read().decode('utf-8'))
with open('renre.html','w', encoding='utf-8') as fp:
#wtite函数必须写入一个Str的数据类型
#resp.read()读出来是一个byte类型的数据。
#byes - > decode -> str
#str - > encode -> bytes
fp.write(resp.read().decode('utf-8'))
#网络请求
from urllib import request
#url解析分割编码
from urllib import parse
#获取网页源码,读取
resp = request.urlopen("http://www.baidu.com")
print(resp.read())
#下载网页信息.,图片
request.urlretrieve('https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1566922204525&di=339e9c960befadd84bbc2f2069ebdfd6&imgtype=0&src=http%3A%2F%2Fn1.itc.cn%2Fimg8%2Fwb%2Frecom%2F2016%2F02%2F05%2F145464426598286455.JPEG'
,'深海泰坦.png')
#urlencode 将字典数据转化为url编码顺序
param = {"name":"张山","age":18}
result = parse.urlencode(param)
print(result)
#parse_qs函数的用法,对url字符串进行解码
params = {'name':'张三', 'age':18, 'greet':'hello world'}
qs = parse.urlencode(params)
print(qs)
print(parse.parse_qs(qs))
#urlparse和urlsplit 对url进行分割。urlsplit没有params.一般不用。
url = 'http://www.baidu.com/s;hello?wd=dfdgdfgdfgd&user=dfgfdj&n=df#1'
result = parse.urlparse(url)
result = parse.urlsplit(url)
print(result)
print('sheme:',result.scheme)
print('netloc:', result.netloc)
#request.Request类。在请求首部中增加请求头,User-Agent = http客户端程序信息
url = 'https://www.csdn.net/'
resp = request.urlopen(url)
headers = { 'User-Agent':"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36"}
data = {
'first':'true',
'pn':1,
}
resp = request.Request(url, headers=headers)
resp = request.urlopen(resp)
print(resp.read())
#ProxyHandler处理器
#IP地址被禁的机制,使用代理服务器,通过代理转发请求。
#没有使用代理
url = "https://www.baidu.com"
resp = request.urlopen(url)
print(resp.read())
#使用代理
print('使用代理的方式!!')
#使用一个ProxyHandler传入一个handler
handler = request.ProxyHandler({'http':"163.204.244.166:9999"})
#使用上面的创建的handle构建一个opener
opener = request.build_opener(handler)
# 使用opener去发送一个请求
resp = opener.open(url)
print(resp.read())