大資料學習練習3 第三天

2022-05-24 14:27:12 字數 2979 閱讀 6033

今天完成了所有的任務,結束了練習三。

今天主要完成了對資料的爬取,需要注意的是,這次爬取第一次遇到了限制**端,所以我通過偽裝,才爬取到了資料,通過測試,也修改了前面程式的bug,接下來直接上**:

import

requests

import pymysql #

匯入requests包

from lxml import

etree

defpaqu():

url = '

國民經濟行業分類/1640176?fr=aladdin

'headers =

strhtml = requests.get(url, headers=headers) #

get方式獲取網頁資料

strhtml.encoding ='

utf-8

'selector =etree.html(strhtml.text)

menlei=""

for i in range(3,1462):

str1="

/html/body/div[3]/div[2]/div/div[2]/table/tr[

"+str(i)+"

]/td[1]/div/b

"content=selector.xpath(str1)

if(len(content)>0):

if(content[0].text!="

"and content[0].text!=""

and content[0].text!=none):

menlei=content[0].text

str1= "

/html/body/div[3]/div[2]/div/div[2]/table/tr[

" + str(i) + "

]/td[2]/div/b

"content =selector.xpath(str1)

if(len(content)>0):

if(content[0].text!="

"and content[0].text!=""

and content[0].text!=none):

xiaolei=content[0].text

str1 = "

/html/body/div[3]/div[2]/div/div[2]/table/tr[

" + str(i) + "

]/td[5]/div/b

"content =selector.xpath(str1)

if (len(content) >0):

if (content[0].text!= "

"and content[0].text != ""

and content[0].text !=none):

name=content[0].text

print(str(i)+"

"+menlei+xiaolei+"

"+name)

tianjia(menlei+xiaolei,name)

print("

新增成功")

deftianjia(id,name):

global

db cur =db.cursor()

sql_add ="

insert into hangye (id,name) values ('

"+id+"

', '

"+name+"')"

try:

cur.execute(sql_add)

#執行sql#提交

db.commit()

except

exception as e:

#錯誤回滾

print("

錯誤資訊:%s

" %str(e))

db.rollback()

#finally:

#db.close()

if__name__ == '

__main__':

db = pymysql.connect(host='

localhost',

port=3306,

user='

root',

passwd='',

db='',

charset='

utf8')

cur =db.cursor()

try:

cur.execute(

"truncate table hangye

") #

執行sql#提交

db.commit()

except

exception as e:

#錯誤回滾

print("

錯誤資訊:%s

" %str(e))

db.rollback()

paqu();

db.close();

前面程式的bug我已經在上一次的部落格中修改了,這裡就不貼了。

然後用echarts完成了視覺化,接下來直接貼結果圖:

個人練習(第三天)

今天練習的 也是python的socket模組,只是比昨天的複雜,今天我試著寫了乙個對話的伺服器和客戶端 以下是 server import socketserver class myserver socketserver.baserequesthandler def handle self con...

學習第三天

額,又是美好的一天!祝賀比利時奪得季軍!下面,還是先看資訊學 今天繼續看倍增。這道題是和倍增沾邊的題,額,其實就是兩邊floyd。但是思路還是可以借鑑的。這道的思路是,使用兩個陣列,乙個是f k u v 這個陣列表示節點u到節點v之間是否距離為2 k,如果是,則為1,否則為0.代表u和v之間是否1s...

學習第三天

等價類是建立在這種思想之上 即我們不可能進行窮舉測試,那麼我們就 必須對輸入進行分類,而這種分類是建立在我們知道計算機程式設計原理和 計算機處理單元的工作原理基礎之上的,程式是通過資料結構和演算法來實現 的,計算機是按照演算法來執行程式的,這種執行是穩定的,不會因為我們的 輸入而導致計算機處理不穩定...