爬取薅羊毛網站百度雲資源
這是疫情期間無聊做的爬蟲,
去獲取暫時用不上的教程
import threading
import time
import pandas as pd
import requests
import re
from threading import Thread, Lock
# import urllib.request as request
# req=urllib.request.Request(rawUrl)
# res = urllib.request.urlopen(req)
# html = res.read().decode('GB2312')
from requests.adapters import HTTPAdapter
# 284
# 337
# 超時重試
s = requests.Session()
s.mount('http://', HTTPAdapter(max_retries=3))
s.mount('https://', HTTPAdapter(max_retries=3))
rawUrl = r'https://www.xd0.com'
aspUrl = r'/ajax/wz.ajax.asp?menu=fy&?menu=fy&page='
MaxPageNum = 560
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/51.0.2704.63 Safari/537.36'}
df = pd.DataFrame(columns=['文章標題', '百度雲盤地址', '內容描述圖片地址', '分類','文章地址'])
semaphore = threading.Semaphore(0)
def climbPage(list):
for num in range(0 ,MaxPageNum):
try:
url = rawUrl + aspUrl + str(num)
print(url + "請求中")
html = requests.get(url, timeout=10, headers=headers).text
print("請求成功")
pattern = re.compile("<a href=\"/(.*?)\"")
list += re.findall(pattern, html)
print("掛起")
semaphore.acquire()
except requests.exceptions.RequestException as e:
print(e)
def handleHtml(url,html):
# 挖百度雲地址
panPWPattern = re.compile(">(https://pan.baidu.com.+?) ")
# 和上面的帶密碼的重複 老資源捨棄
# panOldBtnNPWPattern=re.compile("href=\"(https://pan.baidu.com.+?)\"")
panNewBtnNPWPattern = re.compile("window.open\('(https://pan.baidu.com.+?)'")
panUrlList = re.findall(panPWPattern, html)
# panUrlList+=re.findall(panOldBtnNPWPattern,html)
panUrlList += re.findall(panNewBtnNPWPattern, html)
panUrlList = list(map(lambda item: re.sub(r"</a>", " ", item), panUrlList))
if len(panUrlList)==0:
# 挖標題
# titleUrlPattern = re.compile("<h2 class=\"post-title\">(.+?)</h2>")
# titleList = re.findall(titleUrlPattern, html)
# if len(titleList)!=0:
# title=titleList[0]
# else:
# title="無標題"
# print("網頁標題:"+title+" 地址:"+url+" 沒有資源")
return
# 挖圖片
newImgPattern = re.compile("<a class=\"pics\" href=\"(.+?)\"")
oldImgPattern = re.compile("<P align=center><IMG border=0 src=\"(.+?.jpg)\"></P>")
imgUrlList = re.findall(newImgPattern, html)
imgUrlList += re.findall(oldImgPattern, html)
# 挖標題
titleUrlPattern = re.compile("<h2 class=\"post-title\">(.+?)</h2>")
titleList = re.findall(titleUrlPattern, html)
# 挖分類
categoryPattern = re.compile("rel=\"category tag\">(.*?)</a>")
categoryList = re.findall(categoryPattern, html)
panUrlStr=''
imgUrlStr=''
titleStr=''
categoryStr=''
for index in range(0,len(panUrlList)):
panUrlStr+=panUrlList[index]+'\r'
for index in range(0, len(imgUrlList)):
imgUrlStr += imgUrlList[index] + '\r'
for index in range(0, len(titleList)):
titleStr += titleList[index] + '\r'
for index in range(0, len(categoryList)):
categoryStr += categoryList[index] + '\r'
rowList=[]
rowList.append(titleList[0])
rowList.append(panUrlStr)
rowList.append(rawUrl+'/'+imgUrlStr)
rowList.append(categoryStr)
rowList.append(url)
row=df.shape[0]+1
df.loc[row]=rowList
# print(row)
# if row %100==0:
# filename=time.strftime('%Y_%m_%d_%H_%M_%S',time.localtime(time.time()))
df.to_excel('D:\\小刀網資料.xls', encoding='utf-8', index=False, header=False)
# while row !=1:
# df.drop(row-1)
def climbSrc(list):
time.sleep(5)
while True:
try:
if len(list)==0:
continue
for indexUrl in list:
url=rawUrl +'/'+ indexUrl
print(url+"請求中")
html = requests.get(url, timeout=5, headers=headers).text
print("請求成功")
handleHtml(url,html)
list.clear()
print("釋放")
semaphore.release()
except requests.exceptions.RequestException as e:
print(e)
if __name__ == '__main__':
articleUrlList=[]
# cond = threading.Condition()
# threading.Thread(target=climbPage, args=(articleUrlList,cond)).start()
# threading.Thread(target=climbSrc, args=(articleUrlList,cond)).start()
climbPageThread=Thread(target=climbPage,args=(articleUrlList))
climbSrcThread=Thread(target=climbSrc,args=(articleUrlList))
climbSrcThread.start()
climbPageThread.start()
climbPageThread.join()
climbSrcThread.join()
print("OK")
相關文章
- 使用 Python 爬取網站資料Python網站
- 快速爬取登入網站資料網站
- 爬取網站新聞網站
- 真刑啊!男子破解博彩網站漏洞,每月“薅羊毛”10多萬,憑技術走上歪路網站
- 原始碼被倒賣,大廠薅羊毛,開源真的只能被予取予求?原始碼
- 程式設計師薅羊毛神器來了!程式設計師
- 線上雲養豬刷屏,究竟是薅羊毛還是割韭菜?
- 動態網站的爬取網站
- Committer 郭吉偉專訪:做開源不是搞慈善,用開源也不是薅羊毛MIT
- Python爬蟲—爬取某網站圖片Python爬蟲網站
- 拒絕薅羊毛!嚴防流量被盜刷!
- Python學習:爬個電影資源網站Python網站
- k電商頻遭“薅羊毛” 加大打擊網路黑灰產
- 防薅圖鑑之一薅羊毛深似海,牢底坐穿後悔晚
- 某網站加密返回資料加密_爬取過程網站加密
- 驗證碼防薅羊毛技術的解讀
- 爬蟲搭建代理池、爬取某網站影片案例、爬取新聞案例爬蟲網站
- node爬取網易雲歌曲
- 爬蟲Selenium+PhantomJS爬取動態網站圖片資訊(Python)爬蟲JS網站Python
- 利用Python爬蟲獲取招聘網站職位資訊Python爬蟲網站
- JB的Python之旅-爬取phizhub網站Python網站
- @程式設計師:GitHub這個專案快薅羊毛程式設計師Github
- 一杯咖啡1.5元瑞幸被狂薅羊毛
- 網易雲歌詞爬取(java)Java
- 用Python網路爬蟲獲取Mikan動漫資源Python爬蟲
- 爬取某網站寫的python程式碼網站Python
- 不再任人薅羊毛,“黑灰產”的江湖套路,你得知道
- 餐飲連鎖如何預防被吃出“異物”薅羊毛?
- 利用App優惠券漏洞,狂薅羊毛770萬被抓!APP
- Python網路爬蟲3 – 生產者消費者模型爬取某金融網站資料Python爬蟲模型網站
- Python網路爬蟲3 - 生產者消費者模型爬取某金融網站資料Python爬蟲模型網站
- Python爬蟲實踐--爬取網易雲音樂Python爬蟲
- Python 爬蟲獲取網易雲音樂歌手資訊Python爬蟲
- 如何使用robots禁止各大搜尋引擎爬蟲爬取網站爬蟲網站
- 爬蟲:HTTP請求與HTML解析(爬取某乎網站)爬蟲HTTPHTML網站
- Puppeteer爬取網頁資料網頁
- python爬蟲---網頁爬蟲,圖片爬蟲,文章爬蟲,Python爬蟲爬取新聞網站新聞Python爬蟲網頁網站
- 如何用Python網路爬蟲爬取網易雲音樂歌曲Python爬蟲