python從百度爬圖片
程式碼:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import os
import re
import urllib
import json
import socket
import urllib.request
import urllib.parse
import urllib.error
# 設定超時
import time
timeout = 5
socket.setdefaulttimeout(timeout)
class Crawler:
# 睡眠時長
__time_sleep = 0.1
__amount = 0
__start_amount = 0
__counter = 0
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'}
# 獲取圖片url內容等
# t 下載圖片時間間隔
def __init__(self, t=0.1):
self.time_sleep = t
# 儲存圖片
def __save_image(self, rsp_data, word):
if not os.path.exists("./" + word):
os.mkdir("./" + word)
# 判斷名字是否重複,獲取圖片長度
self.__counter = len(os.listdir('./' + word)) + 1
for image_info in rsp_data['imgs']:
try:
time.sleep(self.time_sleep)
fix = self.__get_suffix(image_info['objURL'])
urllib.request.urlretrieve(image_info['objURL' ], './' + word + '/' + str(self.__counter) + str(fix))
except urllib.error.HTTPError as urllib_err:
print(urllib_err)
continue
except Exception as err:
time.sleep(1)
print(err)
print("產生未知錯誤,放棄儲存")
continue
else:
print("機場+1,已有" + str(self.__counter) + "張機場")
self.__counter += 1
return
# 獲取字尾名
@staticmethod
def __get_suffix(name):
m = re.search(r'\.[^\.]*$', name)
if m.group(0) and len(m.group(0)) <= 5:
return m.group(0)
else:
return '.jpeg'
# 獲取字首
@staticmethod
def __get_prefix(name):
return name[:name.find('.')]
# 開始獲取
def __get_images(self, word='機場'):
search = urllib.parse.quote(word)
# pn int 圖片數
pn = self.__start_amount
while pn < self.__amount:
url = 'http://image.baidu.com/search/avatarjson?tn=resultjsonavatarnew&ie=utf-8&word=' + search + '&cg=girl&pn=' + str(
pn) + '&rn=60&itg=0&z=0&fr=&width=&height=&lm=-1&ic=0&s=0&st=-1&gsm=1e0000001e'
# 設定header防ban
try:
time.sleep(self.time_sleep)
req = urllib.request.Request(url=url, headers=self.headers)
page = urllib.request.urlopen(req)
rsp = page.read().decode('unicode_escape')
except UnicodeDecodeError as e:
print(e)
print('-----UnicodeDecodeErrorurl:', url)
except urllib.error.URLError as e:
print(e)
print("-----urlErrorurl:", url)
except socket.timeout as e:
print(e)
print("-----socket timout:", url)
else:
# 解析json
rsp_data = json.loads(rsp)
self.__save_image(rsp_data, word)
# 讀取下一頁
print("下載下一頁")
pn += 60
finally:
page.close()
print("下載任務結束")
return
def start(self, word, spider_page_num=1, start_page=1):
"""
爬蟲入口
:param word: 抓取的關鍵詞
:param spider_page_num: 需要抓取資料頁數 總抓取圖片數量為 頁數x60
:param start_page:起始頁數
:return:
"""
self.__start_amount = (start_page - 1) * 60
self.__amount = spider_page_num * 60 + self.__start_amount
self.__get_images(word)
if __name__ == '__main__':
crawler = Crawler(0.05)
crawler.start('機場',2)#更改爬的圖片關鍵詞
# crawler.start('帥哥', 5)
相關推薦
python從百度爬圖片
程式碼: #!/usr/bin/env python # -*- coding:utf-8 -*- import os import re import urllib import json import socket import urllib.req
python從百度捉股票值
#!/usr/bin/python3 # -*- coding: utf-8 -*- # BeautifulSoup # https://www.crummy.com/software/BeautifulSoup/bs3/documentation.zh.html#Changing%20attribute%2
使用Python從百度地圖上批量下載興趣點(POI)
背景 編寫這個工具完全是因為資料採集專案需要,由於POI野外採集十分繁瑣,需要定位並錄入名稱、地址等資訊,為了減輕外業人員的負擔,我想到百度地圖上有相關的POI介面可以呼叫,如果能從百度地圖上下載到這
python呼叫百度圖片文字識別介面
# 登入百度api應用頁面獲取下面三相內容 APP_ID = 'xxxxx' API_KEY = 'xxxxxxx' SECRET_KEY = 'xxxxxxx' class BaiduImg(): def __init__(self, img_path): self.im
Python爬蟲例項:從百度貼吧下載多頁話題內容
上週網路爬蟲課程中,留了一個實踐:從百度貼吧下載多頁話題內容。我完成的是從貼吧中一個帖子中爬取多頁內容,與老師題目要求的從貼吧中爬取多頁話題還是有一定區別的,況且,在老師講評之後,我瞬間就發現了自己跟老師程式碼之間的差距了,我在程式碼書寫上還是存在很多不規範不嚴謹的地方,而且
Python呼叫百度手寫識別API,將手寫筆記圖片轉換成文字
事件起因 家裡人有十幾頁手寫筆記想要轉成文字格式。網上搜了一下發現了百度有手寫文字圖片識別的api,於是拿來試試。 雖然最終效果並不理想,還是當做一次測試記錄一下。 手裡有手寫筆記想要識別一下,也可以直接參考下面程式碼試試。 程式碼 程式碼部分
Python 利用百度文字識別 API 識別並提取圖片中文字
Python 利用百度文字識別 API 識別並提取圖片中文字 利用百度 AI 開發平臺的 OCR 文字識別 API 識別並提取圖片中的文字。首先需註冊獲取 API 呼叫的 ID 和 key,步驟如下: 開啟百度AI開放平臺,進入控制檯中的文字識別應用(需要有百度賬號)。
利用Python進行百度文庫內容爬取(一)
新手上路 在很多時候我們需要下載百度文庫內容的時候,彈出來的是下載券不足,而現在複製其中的內容也只能複製一部分,如果遇到一些政治開卷考,考前抱佛腳,想要複製出文庫中的內容,可謂是難上加難。 對百度文庫內容的獲取,從最開始的大部分文件可以免費直接從中直接下載,
python實現百度VIP音樂爬取
百度VIP音樂爬取 網頁分析 分析音樂的真實地址 url拼接 獲取所有資料 批量獲取singid 程式碼編寫 獲取所有的songid 根據songid獲取音樂的真實地址
利用Python呼叫百度地圖介面爬取小區資訊
前幾天有一個需求,就是想要查到每個一二線城市裡所有小區的經緯度,因此爬取程式和啟動程式如下 community_info_do.py 的程式碼如下 # -*- coding: utf-8 -*- """ 功能:呼叫百度地圖介面爬取各城市小區基本資訊 呼叫介面
批量識別圖片中文字(python、百度開發者工具)
進來一直為各種課程的實驗報告困擾,字數很多,百度文庫、豆瓣等資源網站又無法免費下載。就想著如果我能把他們截圖下來,然後批量轉換成文字該多好呢?所謂懶惰是人類進步的階梯。筆者決定通過python程式,呼叫百度api完成這項功能。認證百度開發者首先要在百度開發者平臺認證成為百度開
Python實驗:百度搜索關鍵字自動打開相關URL
python實驗:百度搜索關鍵字自動打開相關url#! python # coding: utf-8 # python實現百度搜索關鍵字,並依次用瀏覽器打開前五個搜索結果 ## ##Beautiful Soup 是一個模塊,用於從HTML 頁面中提取信息(用於這個目的時,它比正則表達式好很多)。Beautif
Python利用百度地圖api批量獲取地址經緯度
req excel文件 經緯度 imp print pen with 文件 key 1.pip安裝xlrd,xlwt,requests模塊. 2.在工程目錄處放置地點Excel文件。 python代碼: #coding:utf-8 import xlrd import x
python實現百度搜索
python 爬蟲 mechanize 瀏覽器 利用Python mechanize模塊模擬瀏覽器實現百度搜索# -*- coding:utf-8 -*- import mechanize import sys reload(sys) sys.setdefaultencoding(‘utf8‘
python實現百度URL的采集
end not ref result [0 -a odin mozilla 代碼 用到的模塊:threading多線程模塊 requests模塊 BeautifulSoup模塊 實現功能:可以通過命令行控制關鍵字以及線程數,實現百度的url采集 代碼如下: #!/usr/
我的第一個自動化腳本(python)----百度搜索
expect style 目錄 .exe nbsp com 自動 其他人 其他 這是一個純小白胡說八道的個人總結,如果有人看到什麽不對的,歡迎批評指正 博客園開通了很久,一直不知道該怎麽去寫,總覺得自己要寫的東西都是別人已經寫過的,我再去寫就是在重復之前人所說,今天去面試和
15行Python 仿百度搜索引擎
name 3D ebe 結果 open author sta def images 開發工具:PyCharm 開發環境:python3.6 + flask + requests 開發流程: 1. 啟動一個web服務 from flask import Fl
【數據分析】python分析百度搜索關鍵詞的頻率
爬蟲 自動化 數據分析 python 基礎 涉及知識點 1、抓取數據 2、分頁爬蟲規律分析1、抓取數據,發現每一項都是data-tools標簽2、分頁分析代碼import requests from bs4 import BeautifulSoup import re impo
python爬蟲百度翻譯
return 中文 http mar user base res img apple python3,爬取的是百度翻譯手機版的網頁 運用requests,json模塊 英漢互譯,運行結果 #!/bin/python3 # -*- coding: UTF-
python 爬蟲 百度貼吧簽到小工具
sca window user con lee post use wow64 搜索 import requests,re,timeheader ={ "Cookie":"登陸過賬號後的cookie 必須填寫", "User-Agent":"Mozilla/5.