本文目录一览:
- 1、python 爬取到的url怎么转码
- 2、python编写接口,请求url应该如何确定?
- 3、python 如何将大量图片的url保存到本地?
- 4、如何在python配置动态转发代理?
- 5、python 无法转url 编码怎么解决
python 爬取到的url怎么转码
先引入urllib模块
假如我们要对下面的url进行转码,注意观察各种字符的变化
使用quote方法,进行转码
我们看看转码得到的结果:
我们想要得到原先的url,可以使用quote的逆函数unquote
得到反转码以后的url,我们看到这种方法并没有返回中文字符。
python编写接口,请求url应该如何确定?
1、是一个接口
2、程序需要运行后才能访问,可以部署到服务器上,程序一旦运行是守护进程,只要不关闭程序一直会运行
3、请求的url根据'/xxx'来确定,请求的类型 methods=['get']
python 如何将大量图片的url保存到本地?
你如果要保存图片的url,直接把imgsrc写入本地文件就可以了,urllib.request.urlretrieve(imgsrc)这个的意思是你要保存的不是图片的url,而是要把图片下载下来,这个是要批量爬取网站上的图片,需要考虑网站的反爬虫措施了。
如何在python配置动态转发代理?
你好,首先你需要一个middlewares.py,如下:
import random
# 导入settings文件中的UAPOOL
from settings import UAPOOL
# 导入官方文档对应的HttpProxyMiddleware
from scrapy.contrib.downloadermiddleware.useragent import UserAgentMiddleware
class Uamid(UserAgentMiddleware):
# 初始化 注意一定要user_agent,不然容易报错
def __init__(self, user_agent=''):
self.user_agent = user_agent
# 请求处理
def process_request(self, request, spider):
# 先随机选择一个用户代理
thisua = random.choice(UAPOOL)
print("当前使用User-Agent是:"+thisua)
request.headers.setdefault('User-Agent',thisua)
在settings.py文件中添加用户UserAgent的信息
# 设置用户代理池,那些动态代理就放到这里了
UAPOOL= [
"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393"
]
python 无法转url 编码怎么解决
今天要处理百度贴吧的东西。想要做一个关键词的list,每次需要时,直接添加 到list里面就可以了。但是添加到list里面是中文的情况(比如‘丽江’),url的地址编码却是'%E4%B8%BD%E6%B1%9F',因此需 要做一个转换。这里我们就用到了模块urllib。
import urllib
data = '丽江'
print data
丽江
data
'\xe4\xb8\xbd\xe6\xb1\x9f'
urllib.quote(data)
'%E4%B8%BD%E6%B1%9F'
那我们想转回去呢?
urllib.unquote('%E4%B8%BD%E6%B1%9F')
'\xe4\xb8\xbd\xe6\xb1\x9f'
printurllib.unquote('%E4%B8%BD%E6%B1%9F')
丽江
细心的同学会发现贴吧url中出现的是%C0%F6%BD%AD,而非'%E4%B8%BD%E6%B1%9F',其实是编码问题。百度的是gbk,其他的一般网站比如google就是utf8的。所以可以用下列语句实现。
import sys,urllib
s = '丽江'
urllib.quote(s.decode(sys.stdin.encoding).encode('gbk'))
'%C0%F6%BD%AD'
urllib.quote(s.decode(sys.stdin.encoding).encode('utf8'))
'%E4%B8%BD%E6%B1%9F'
另一个方法
#!/usr/bin/python
import urllib
import sys
string = sys.argv[1]
string = unicode(string,"gbk")
utf8_string = string.encode("utf-8")
gbk_string=string.encode("gbk")
gbk=urllib.quote(gbk_string)
utf8=urllib.quote(utf8_string)
print gbk
print utf8