本文目錄一覽:
- 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
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/185038.html