日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python登录网站后爬取数据_用 Python 登录主流网站,我们的数据爬取少不了它

發布時間:2025/4/16 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python登录网站后爬取数据_用 Python 登录主流网站,我们的数据爬取少不了它 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

不論是自然語言處理還是計算機視覺,做機器學習算法總會存在數據不足的情況,而這個時候就需要我們用爬蟲獲取一些額外數據。這個項目介紹了如何用 Python 登錄各大網站,并用簡單的爬蟲獲取一些有用數據,目前該項目已經提供了知乎、B 站、和豆瓣等 18 個網站的登錄方法。項目作者:CriseLYJ。

作者收集了一些網站的登陸方式和爬蟲程序,有的通過 selenium 登錄,有的則通過抓包直接模擬登錄。作者希望該項目能幫助初學者學習各大網站的模擬登陸方式,并爬取一些需要的數據。

作者表示模擬登陸基本采用直接登錄或者使用 selenium+webdriver 的方式,有的網站直接登錄難度很大,比如 qq 空間和 bilibili 等,采用 selenium 登錄相對輕松一些。雖然在登錄的時候采用的是 selenium,但為了效率,我們也可以在登錄后維護得到的 cookie。登錄后,我們就能調用 requests 或者 scrapy 等工具進行數據采集,這樣數據采集的速度可以得到保證。

目前已經完成的網站有:Facebook

無需身份驗證即可抓取 Twitter 前端 API

微博網頁版

知乎

QQZone

CSDN

淘寶

Baidu

果殼

JingDong 模擬登錄和自動申請京東試用

163mail

拉鉤

Bilibili

豆瓣

Baidu2

獵聘網

微信網頁版登錄并獲取好友列表

Github

爬取圖蟲相應的圖片

如下所示,如果我們滿足依賴項,那么就可以直接運行代碼,它會在圖蟲網站中下載搜索到的圖像。

如下所示為搜索「秋天」,并完成下載的圖像:

每一個網站都會有對應的登錄代碼,有的還有數據的爬取代碼。以豆瓣為例,主要的登錄函數如下所示,它會獲取驗證碼、處理驗證碼、返回登錄數據完成登錄,并最后保留 cookies。

def login():

captcha, captcha_id = get_captcha()

# 增加表數據

datas['captcha-solution'] = captcha

datas['captcha-id'] = captcha_id

login_page = session.post(url, data=datas, headers=headers)

page = login_page.text

soup = BeautifulSoup(page, "html.parser")

result = soup.findAll('div', attrs={'class': 'title'})

#進入豆瓣登陸后頁面,打印熱門內容

for item in result:

print(item.find('a').get_text())

# 保存 cookies 到文件,

# 下次可以使用 cookie 直接登錄,不需要輸入賬號和密碼

session.cookies.save()

其中獲取并解決驗證碼的函數如下:

def get_captcha():

'''

獲取驗證碼及其ID

'''

r = requests.post(url, data=datas, headers=headers)

page = r.text

soup = BeautifulSoup(page, "html.parser")

# 利用bs4獲得驗證碼圖片地址

img_src = soup.find('img', {'id': 'captcha_image'}).get('src')

urlretrieve(img_src, 'captcha.jpg')

try:

im = Image.open('captcha.jpg')

im.show()

im.close()

except:

print('到本地目錄打開captcha.jpg獲取驗證碼')

finally:

captcha = input('please input the captcha:')

remove('captcha.jpg')

captcha_id = soup.find(

'input', {'type': 'hidden', 'name': 'captcha-id'}).get('value')

return captcha, captcha_id

當然這些都是簡單的演示,在 GitHub 項目中可以找到更多的示例。此外,作者表明由于網站策略或者樣式改變而導致代碼失效,我們也可以提 Issue 或 Pull Requests。最后,該項目未來還會一直維護,很多東西哦也會慢慢改進,項目作者表明:項目寫了一段時間后,發現代碼風格、程序易用性、可擴展性、代碼的可讀性,都存在一定的問題,所以接下來最重要的是重構代碼,讓大家可以更容易的做出一些自己的小功能;

如果讀者覺得某個網站的登錄很有代表性,可以在項目 issue 中提出;

網站的登錄機制有可能經常的變動,所以當現在的模擬的登錄的規則不能使用的時候,請項目在 issue 中提出。

總結

以上是生活随笔為你收集整理的python登录网站后爬取数据_用 Python 登录主流网站,我们的数据爬取少不了它的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。