bytesencode()字節類型轉字符串bytes-->strdecode()1.以一個簡單的例子講解urllib.request方法read讀取相應內容,內容geturl獲取請求的urlgetheaders獲取頭部信息getcode獲取狀態碼readlines按行讀取,返回列表,都是字節類型1.1獲取百度的網頁代碼importurllib.requesturl="https://www.b" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python爬蟲urllib的request與parse方法

系統 1702 0

在爬蟲前,需要知道這兩個知識點?。。?
字符串轉字節類型
str --> bytes
encode()
字節類型轉字符串
bytes --> str
decode()

1.以一個簡單的例子講解urllib.request方法

read 讀取相應內容,內容
geturl 獲取請求的url
getheaders 獲取頭部信息
getcode 獲取狀態碼
readlines 按行讀取,返回列表,都是字節類型

1.1獲取百度的網頁代碼

            
              import urllib.request
url = "https://www.baidu.com"
response = urllib.request.urlopen(url)

#打印出來是二進制
print(response.read().decode('utf8'))

# 獲取狀態碼
print(response.getcode())

# 獲取響應頭
print(response.getheaders())

# 獲取url
print(response.geturl())

# 把讀取到的內容保存起來的兩種方法

# 第一種方法w以字符串寫入
with open("baidu.html","w",encoding='utf8') as f:
    f.write(response.read().decode('utf8'))

#第二種方法 wb以二進制寫入
with open("baidu.html","wb") as f:
    f.write(response.read())

            
          

1.2爬取百度里面的圖片為例子

            
              import urllib.request
image_url = 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=
1561806237168&di=319407f10b4c55baf1d5b905d8a2f20a&imgtype=0&src=http%3A%2F%2
Fimg2.ph.126.net%2F2zB3_wWPXlEW0RdwQa8d6A%3D%3D%2F2268688312388037455.jpg'

#第一種方法
# response = urllib.request.urlopen(image_url)
#像圖片只能寫入到本地二進制的格式
# with open('qing.jpg','wb') as fp:
#     fp.write(response.read())

#第二種方法
urllib.request.urlretrieve(image_url,'chun.jpg')

            
          

2.以一個簡單的例子講述parse方法

quote url編碼函數,將中文進行轉化為%xxx
unquote url解碼函數,將%xxx轉化為指定字符
urlencode 給一個字典,將字典拼接為query_string

2.1自己寫一個url進行操作

            
              import urllib.parse
url = 'http://www.baidu.com/index.html'
#http://www.baidu.com/index.html?name=goudan&age=18&sex=nv&height=180
name = '狗蛋'
age = 18
sex = '女'
height = '180'
data={
    'name':name,
    'age':age,
    'sex':sex,
    'height':height
}
#第一種方法
query_string = urllib.parse.urlencode(data)
print(query_string)

#第二種方法
#遍歷字典
# it = []
# for k,v in data.items():
#     it.append(k+'='+str(v))
# query_string = '&'.join(it)

url = url+'?'+query_string
print(url)

            
          

這就是request與parse方法!!!


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 仪征市| 屯留县| 星座| 梁河县| 克东县| 桂平市| 平昌县| 嘉黎县| 连山| 堆龙德庆县| 麻城市| 瑞昌市| 德惠市| 巴中市| 武义县| 安多县| 正蓝旗| 荣昌县| 乐昌市| 托克逊县| 曲靖市| 左权县| 黄山市| 冕宁县| 舞阳县| 贡嘎县| 景东| 岳池县| 比如县| 博湖县| 五峰| 奉化市| 广饶县| 东山县| 靖安县| 镇原县| 衡南县| 泌阳县| 鄂伦春自治旗| 灯塔市| 益阳市|