python输入数据爬取_python根据用户需求输入想爬取的内容及页数爬取图片方法详解...
本次小編向大家介紹的是根據用戶的需求輸入想爬取的內容及頁數。
主要步驟:
1.提示用戶輸入爬取的內容及頁碼。
2.根據用戶輸入,獲取網址列表。
3.模擬瀏覽器向服務器發送請求,獲取響應。
4.利用xpath方法找到圖片的標簽。
5.保存數據。
代碼用面向過程的形式編寫的。
關鍵字:requests庫,xpath,面向過程
現在就來講解代碼書寫的過程:
1.導入模塊
import parsel # 該模塊主要用來將請求后的字符串格式解析成re,xpath,css進行內容的匹配
import requests # 爬蟲主要的包
from urllib.request import urlretrieve # 本文用來下載圖片
import os # 標準庫,本文用來新建文件夾
每個模塊的作用都已經備注了。
2.提示用戶輸入內容和頁數
if not os.path.exists("王一博圖片"):
os.mkdir("王一博圖片") # 判斷有沒有該文件夾,如果沒有就創建改文件夾
k = input("請輸入你想搜索的關鍵字:")
num = int(input("請輸入你想搜索的頁數:"))
3.準備好url和header
header = {"user-agent":
"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Mobile Safari/537.36"
}
base_url = "https://www.duitang.com/search/?kw=" + k + "&type=feed#!s-p"
title_url = []
n = 0
user-agent是服務器識別瀏覽器的重要參數,我們就用這個來蒙騙服務器,user-agent在瀏覽器里可以找到
那么現在我們就關注右邊
這樣header就找到了,注意要以字典的形式
4.發送請求、
for i in range(num):
title_url = base_url + str(i)
respons = requests.get(title_url, headers=header).text
html = parsel.Selector(respons) # 解析數據 -- parsel 轉化為Selector對象,Selector對象具有xpath的方法,能夠對轉化的數據進行處理
pic_url = html.xpath('//div[@class="mbpho"]/a/img/@src').extract()
一切準備就緒后,就可以發送請求了。request.get.text返回的是網頁的源代碼,然后將源代碼轉換為Selector對象,再通過xpath的方法找到圖片的網址。
5.保存數據
獲取圖片的圖片的鏈接后,我們就可以保存了。
for url in pic_url:
n = n + 1
file_path = "王一博圖片" + '/' + str(n)+".jpg"
urlretrieve(url, file_path) # 下載圖片,具體的用法可以去搜索下,很簡單的
print("第%d張圖片下載成功" % n)
注意:這里的for循環是在上面的循環里嵌套的。
最后來看看全部的代碼吧!
import parsel # 該模塊主要用來將請求后的字符串格式解析成re,xpath,css進行內容的匹配
import requests
from urllib.request import urlretrieve # 本文用來下載圖片
import os # 標準庫,本文用來新建文件夾
if not os.path.exists("王一博圖片"):
os.mkdir("王一博圖片") # 判斷有沒有該文件夾,如果沒有就創建改文件夾
k = input("請輸入你想搜索的關鍵字:")
num = int(input("請輸入你想搜索的頁數:"))
header = {"user-agent":
"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Mobile Safari/537.36"
}
base_url = "https://www.duitang.com/search/?kw=" + k + "&type=feed#!s-p"
title_url = []
n = 0
for i in range(num):
title_url = base_url + str(i)
respons = requests.get(title_url, headers=header).text
html = parsel.Selector(respons)
pic_url = html.xpath('//div[@class="mbpho"]/a/img/@src').extract()
# print(pic_url)
for url in pic_url:
n = n + 1
file_path = "王一博圖片" + '/' + str(n)+".jpg"
urlretrieve(url, file_path) # 下載圖片,具體的用法可以去搜索下,很簡單的
print("第%d張圖片下載成功" % n)
來看看運行的結果,以搜索王一博,搜索5頁為例。
然后你就發信多了一個王一博的文件夾了,點開就可以看見王一博的帥照了。
到此這篇關于python根據用戶需求輸入想爬取的內容及頁數爬取圖片方法詳解的文章就介紹到這了,更多相關python爬取圖片方法內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
總結
以上是生活随笔為你收集整理的python输入数据爬取_python根据用户需求输入想爬取的内容及页数爬取图片方法详解...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 域名和服务器怎么绑定(服务器绑定域名)
- 下一篇: pythonwhile循环怎么修改数据类