今天完成了所有的任務,結束了練習三。
今天主要完成了對資料的爬取,需要注意的是,這次爬取第一次遇到了限制**端,所以我通過偽裝,才爬取到了資料,通過測試,也修改了前面程式的bug,接下來直接上**:
import前面程式的bug我已經在上一次的部落格中修改了,這裡就不貼了。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();
然後用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...
學習第三天
等價類是建立在這種思想之上 即我們不可能進行窮舉測試,那麼我們就 必須對輸入進行分類,而這種分類是建立在我們知道計算機程式設計原理和 計算機處理單元的工作原理基礎之上的,程式是通過資料結構和演算法來實現 的,計算機是按照演算法來執行程式的,這種執行是穩定的,不會因為我們的 輸入而導致計算機處理不穩定...