# -*- coding=utf-8 -*-
import time
import requests
import re
import os
from bs4 import beautifulsoup
from requests.exceptions import connectionerror, readtimeout
##url =
''headers =
# 建立頭部資訊
headers2 =
# 建立頭部資訊
defgeturl
(url)
:#傳送網路請求
a = requests.get(url,headers=headers)
a.encoding =
'utf-8'
#改變亂碼問題
html = a.text
#html_doc = str(html, 'utf-8')
return html
defdodown()
:# beautifulsoup是乙個html / xml解析器
# soup中是整個html物件
soup = beautifulsoup(geturl(url)
,'html.parser'
)# 解析爬取**
#print(soup)
for i in
range(1
,95):
# 2.html
mu_lu_url =
""+str
(i)+
".html"
soup2 = beautifulsoup(geturl(mu_lu_url)
,'html.parser'
)# 解析爬取**
# print(soup2)
#獲取當前目錄 有的所有集
img_mu_lu = soup2.find(
"ul",)
.find_all(
"li"
)#套圖的第一頁的實際url
#遍歷含有圖集的url標籤
for mu_lu in img_mu_lu:
# 遍歷url列表
result =
# 過濾出字典
print
('圖集名稱為:'
, result[
'title'],
,result[
'link'])
img_title = result[
'title'][
-5:]
#圖集的資料夾名稱
start1 = img_title.find(
'[')
end1 = img_title.rfind(
']')
img_count = img_title[start1 +
1:end1]
#的實際個數
# 建立資料夾
mkdir(
'c:/users/25308/desktop/python/美圖錄/'
+ result[
'title'])
# 迴圈圖集
#拼接出實際url :
("出現如下異常%s"
%ex)
defdownimage
(name,image)
:print
('第'
, name,
'張',
#用乙個新的請求頭,不然返回值為404
print
('請求返回結果:'
,img)
ifstr
(img)
==''
:print
(, end='')
f.write(img.content)
f.close(
)def
mkdir
(name)
:if os.path.exists(name)
:print
('檔案已經存在,不需要建立!'
) os.chdir(name)
# 改變當前工作目錄到指定的路徑
else
:print
('建立資料夾:'
) os.mkdir(name)
os.chdir(name)
# 改變當前工作目錄到指定的路徑
if __name__ ==
'__main__'
:# 建立資料夾
mkdir(
'c:/users/25308/desktop/python/美圖錄/'
)# 設定儲存爬取的路徑
yanshi =
0.5#設定抓取延遲(0.5秒)
dodown(
)
python3爬取電影資料
爬取電影票房資料,用於統計建模分析。目標 為電影票房資料庫 基本的爬取靜態 的技術,模擬登陸使用的是最簡單的cookies。這種模擬登陸的方式雖然簡單但有很大的侷限性,時效性比較短,也許兩三天後就失效了,或者網頁改版一點也會導致失效。最好的方式還是找到登陸頁面,獲取需要提交的資料和提交方式,模擬我們...
python3 小說爬取案例
爬取 具體書籍 res requests.get url,headers header 爬取網頁 web res.text 獲得網頁文字格式 正則匹配方法 匹配除了空格和換行之外的字元 s s 上面的匹配方法無效的時候用這個匹配全部的字元,再用上面的方法進行匹配。具體應用舉例 pattern4 re...
python3爬取高畫質桌布 2
上次只是爬取乙個 的,這次要爬取一整個頁面的所有 的。在上次的 的基礎上進行修改就行了,從 的索引頁面開始,爬取該頁面上所有的 的鏈結,再套用上次的 就行了。若要爬取多個頁面只需在外圍套上乙個迴圈就可以了。如下 import requests import refrom bs4 import bea...