<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          牛逼!用 Python 登錄主流網(wǎng)站,這個Github 13K點贊的項目火爆了!

          共 4147字,需瀏覽 9分鐘

           ·

          2021-03-22 13:38








          點上方“菜鳥學Python”,選擇“星標

          450篇原創(chuàng)干貨,第一時間送達


          機器之心編輯

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


          項目地址:https://github.com/CriseLYJ/awesome-python-login-model


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


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


          目前已經(jīng)完成的網(wǎng)站有:



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



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



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


          def login():
              captcha, captcha_id = get_captcha()
              # 增加表數(shù)據(jù)
              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 })
              #進入豆瓣登陸后頁面,打印熱門內(nèi)容
              for item in result:
                  print(item.find( a ).get_text())
              # 保存 cookies 到文件,
              # 下次可以使用 cookie 直接登錄,不需要輸入賬號和密碼
              session.cookies.save()


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


          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 項目中可以找到更多的示例。此外,作者表明由于網(wǎng)站策略或者樣式改變而導致代碼失效,我們也可以提 Issue 或 Pull Requests。最后,該項目未來還會一直維護,很多東西哦也會慢慢改進,項目作者表明:


          • 項目寫了一段時間后,發(fā)現(xiàn)代碼風格、程序易用性、可擴展性、代碼的可讀性,都存在一定的問題,所以接下來最重要的是重構代碼,讓大家可以更容易的做出一些自己的小功能;

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

          • 網(wǎng)站的登錄機制有可能經(jīng)常的變動,所以當現(xiàn)在的模擬的登錄的規(guī)則不能使用的時候,請項目在 issue 中提出。




          推薦閱讀:

          入門: 最全的零基礎學Python的問題  | 零基礎學了8個月的Python  | 實戰(zhàn)項目 |學Python就是這條捷徑


          干貨:爬取豆瓣短評,電影《后來的我們》 | 38年NBA最佳球員分析 |   從萬眾期待到口碑撲街!唐探3令人失望  | 笑看新倚天屠龍記 | 燈謎答題王 |用Python做個海量小姐姐素描圖 |


          趣味:彈球游戲  | 九宮格  | 漂亮的花 | 兩百行Python《天天酷跑》游戲!


          AI: 會做詩的機器人 | 給圖片上色 | 預測收入 | 碟中諜這么火,我用機器學習做個迷你推薦系統(tǒng)電影


          年度爆款文案


          瀏覽 37
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  青青草日p视频 | 私人女仆扫地偷懒被主人颜色吃现在被喷尿洗脸 | 在线观看的成人黄色视频 | 久久躁日日躁AAAAXXXX | 高清无码在线免费观看视频 |