<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      爬蟲學習筆記(1)-- 利用Python從網頁抓取數據

      最近想從一個網站上下載資源,懶得一個個的點擊下載了,想寫一個爬蟲把程序全部下載下來,在這里做一個簡單的記錄

      Python的基礎語法在這里就不多做敘述了,黑馬程序員上有一個基礎的視頻教學,可以跟著學習一下

      本篇博客為基礎章:利用Python從網頁端抓取數據,閑話不多說,開始正題:

      首先需要學習這幾個模塊:

      1 webbrowser:Python自帶的模塊,打開瀏覽器獲取到指定的頁面

      2 requests:從英特網上下載文件和網頁

      3 Beautiful Soup:解析HTML,即網頁編寫的格式

      4 selenium:啟動并控制一個Web瀏覽器。selenium能夠填寫表單,并模擬鼠標在這個瀏覽器上點擊

       

      1 webbrowser模塊:

      可以利用.open()方法打開指定的Url。例如在idea中輸入如下代碼:

      運行Python文件,系統會自動打開一個瀏覽器,打開百度

       2  requests模塊:

      這是一個第三方模塊,需要先從網上下載:

       我在Python的運行環境下報錯:

      切換到cmd環境:

      安裝成功,在項目中加載requests模塊:

       1 import requests
       2 # 調用requests.get()下載文件
       3 res = requests.get('http://www.gutenberg.org/files/57156/57156-h/57156-h.htm')
       4 # 確保程序正在下載失敗時候停止
       5 res.raise_for_status()
       6 # Python文件使用“wb”方式打開,寫入字符串會報錯,因為這種打開方式為:
       7 # 以二進制格式打開一個文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
       8 playFile = open('test.txt','wb')
       9 # 利用iter_content()方法做循環
      10 # 一段為10000字節
      11 for chuck in res.iter_content(10000):
      12     playFile.write(chuck)
      13 playFile.close()
      示例

      這里放兩個對于這個模塊寫的比較詳細的Blog:

      2.1 快速上手

      2.2 用法總結

      3 Beautiful Soup模塊:

      用于從html中提取元素信息

      首先安裝第三方模塊:

      在項目中加載

      首先在項目中添加名為example的html網頁,代碼如下:

      <html><head><title>The Website Title</title></head>
      <body>
      <p>Download my <strong>Python</strong> book from <a href="http://inventwithpython.com">my website</a>.</p>
      <p class="slogan">Learn Python the easy way!</p>
      <p>By <span id="author">Al Sweigart</span></p>
      </body></html>
      example

      顯示效果如下:

      示例代碼如下:

       1 import requests,bs4
       2 
       3 exampleFile = open('example.html')
       4 exampleSoup = bs4.BeautifulSoup(exampleFile.read(),"html.parser")
       5 print('----------通過id----------')
       6 # 返回一個帶有id = "author" 的元素,將這個Tag對象的列表保存在變量elems中
       7 elems = exampleSoup.select("#author")
       8 print(type(elems))
       9 # 列表中只有一個Tag對象,只有一次匹配
      10 print(len(elems))
      11 print(type(elems[0]))
      12 # 元素的文本
      13 print(elems[0].getText())
      14 # 一個字符串,包含開始和結束標簽,以及該元素的文本
      15 print(str(elems[0]))
      16 # 字典,包含元素的屬性以及屬性值
      17 print(elems[0].attrs)
      18 print()
      19 print('----------通過元素----------')
      20 pelements = exampleSoup.select('p')
      21 print(len(pelements))
      22 print(str(pelements[0]))
      23 print(pelements[0].getText())
      24 print(str(pelements[1]))
      25 print(pelements[1].getText())
      26 print()
      27 print('----------通過屬性----------')
      28 spqnelem = exampleSoup.select('span')[0]
      29 print(len(spqnelem))
      30 print(str(spqnelem))
      31 print(spqnelem.get('id'))
      32 print(spqnelem.attrs)
      BeautifulSoup模塊

      運行結果如圖所示:

      值得一提的是,一開始在項目運行的時候嗎,爆出如下的錯誤:

      解決方法很簡單,在調用bs4.BeautifulSoup()函數時添加“html.parser”參數

      一些常用的css選擇器的模式:

      CSS選擇器的例子
      傳遞給select()方法的選擇器 將匹配為...
       soup.select('div’)  所有名為<div>的元素
        soup.select('#author’)  帶有id屬性為author的元素
        soup.select('.notice’)  所有使用css class屬性為notice的元素
        soup.select('div span’)  所有在<div>元素之內的<span>元素
        soup.select('div>span’)  所有直接在<div>元素之內的<span>元素,中間沒有其他元素
        soup.select('input[name]’)  所有名為<input>,并有一個name屬性,其值無所謂的元素
        soup.select('input[type = 'button']’)  所有名為<input>,并有一個type屬性,其值為button的元素

       

       

       

       

       

       

       

       

       

       

       

       

       

       

      最后貼一個BeautifulSoup的文檔以便參考

      4 selenium模塊:

      該模塊可以讓Python直接控制瀏覽器

      首先導入模塊,方法與之前的略有不同,首先需要下載壓縮包,直接運行會報錯:

      解壓后在當前文件夾運行pip install selenium,按住Shift,右鍵選擇在此處打開Powershell窗口

      在項目中導入模塊,方法較之前幾個模塊,略有不同,示例代碼如下:

       1 from selenium import webdriver
       2 import time
       3 bo = webdriver.Firefox()
       4 bo.get('https://www.baidu.com/')
       5 # 模擬點擊頁面按鈕
       6 link = bo.find_element_by_partial_link_text('貼吧')
       7 link.click()
       8 # 模擬填寫表單并注冊
       9 bo.get('https://mail.qq.com/cgi-bin/loginpage')
      10 bo.switch_to.frame('login_frame')
      11 bo.find_element_by_css_selector('#switcher_plogin').click()
      12 emailelem = bo.find_element_by_id('u')
      13 emailelem.send_keys('賬號')
      14 passelem = bo.find_element_by_id('p')
      15 passelem.send_keys('密碼')
      16 passelem.submit()
      selenium

      運行時報以下錯誤:

      缺少geckodriver文件,在這里找到對應的版本后,下載之后解壓到Python.exe和FireFox所在的文件夾里面即可

      posted @ 2018-05-18 09:51  StephenCurry  閱讀(10867)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 五月综合网亚洲乱妇久久| 国产精品成人午夜福利| 苍井空毛片精品久久久| 国产精品无码成人午夜电影| 熟妇人妻无码中文字幕老熟妇| 2019nv天堂香蕉在线观看| yw尤物av无码国产在线观看| 欧洲精品码一区二区三区| 日日躁狠狠躁狠狠爱| 亚洲日韩av无码一区二区三区人 | 极品少妇无套内射视频| 免费特黄夫妻生活片| 久久人妻国产精品| 亚洲熟女乱一区二区三区| 久久se精品一区精品二区国产| 国产玖玖玖玖精品电影| 国产精品一码二码三码| 亚洲熟妇国产熟妇肥婆| 日韩精品成人区中文字幕| 69天堂人成无码免费视频| 免费中文熟妇在线影片| 绯色蜜臀av一区二区不卡| 人妻中文字幕亚洲精品| 丝袜人妻一区二区三区网站| 囯产精品久久久久久久久久妞妞| 手机看片AV永久免费| 又污又爽又黄的网站| 久久中文字幕日韩无码视频| 公天天吃我奶躁我的在| 和政县| 精品无码三级在线观看视频| 免费高清特级毛片A片| 九台市| 日韩大片高清播放器| 97人人添人人澡人人澡人人澡| 亚洲人成网站在线播放2019| 99久久精品国产一区二区| 国产精品伦人视频免费看| 果冻传媒一区二区天美传媒| 亚洲 一区二区 在线| 熟妇人妻av无码一区二区三区|