Python爬蟲實戰

來源:互聯網
上載者:User

標籤:exe   name   資料庫操作   import   read   utf8   https   urllib   .exe   

需求

抓取2018年四川大學自主招生初審通過名單資訊。

具備知識

1.Regex。

2.python基礎文法,爬蟲和資料庫操作。

操作

1.抓取網頁。

2.解析出需要的資料。

3.繼續抓取下一個頁面,重複12步驟直到到尾頁停止。

4.將解析出來的資料存入資料庫。

執行個體

採用python3.6和mysql

import urllib.requestimport reimport pymysqldef catch_page(url_addr):    try:        page_data = urllib.request.urlopen(url_addr).read()    except urllib.URLError as e:        if hasattr(e,‘code‘):            print(‘伺服器不能接受請求 錯誤碼:‘,e.code)        elif hasattr(e,‘reason‘):            print(‘無法抵達伺服器,請檢查url和讀的原因!\n 原因:‘,e.reason)    return page_datadef find_all_data(html):    pattern = "<tr>[\s\S]*?<td>(.*?)</td>"               "[\s\S]*?<td>(.*?)</td>"               "[\s\S]*?<td>(.*?)</td>"               "[\s\S]*?<td>(.*?)</td>[\s\S]*?</tr>" #[\s\S]*?匹配任一字元    userdata = re.findall(pattern,html)    return userdatadef add_to_mysql(userdatas):    conn = pymysql.connect(host=‘127.0.0.1‘, port=3306, user=‘root‘, passwd=‘root‘, db=‘scdx_zzzs_db‘, charset=‘utf8‘)    cursor = conn.cursor()    for userdata in userdatas:        sql = "insert into student(name,sex,school,province) values(‘%s‘,‘%s‘,‘%s‘,‘%s‘);" % (userdata[0], userdata[1], userdata[2], userdata[3])        try:            cursor.execute(sql)            print("√執行成功----->>" + sql)        except:            print("×執行失敗----->>" + sql)    conn.commit()    cursor.close()    conn.close()userdatas = []i = 0while i<=3300:    url = "https://gaokao.chsi.com.cn/zzbm/mdgs/detail.action?oid=476754340&lx=1&start=%d" % i    html = catch_page(url).decode()    userdatas.extend(find_all_data(html))    print(i)    i += 30add_to_mysql(userdatas)

執行完就成功從網頁抓取資料存入資料庫中了。

Python爬蟲實戰

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.