1. 程式人生 > 實用技巧 >python爬取入門——爬取中技網技術需求並存儲入mysql資料庫

python爬取入門——爬取中技網技術需求並存儲入mysql資料庫

一、開啟中技網網站

  右鍵檢查,找到可以進入二級網頁即各個需求詳情的入口,如圖

  

  通過觀察發現,這些二級網址包含在class名為con_js的div中,而裡面只有一個a標籤,因而可以用BeautifulSoup中soup.find_all(class_='conjs')獲取這些div,然後遍歷直接獲取a標籤的href屬性,即soup[i].a['href']

二、進入詳情網頁

  可以發現我們要爬的大部分資訊都在class=ft_886_1這個div中,根據每個標籤的class尋找即可,詳細介紹在第一個class為ft_930_2的標籤中

三、存入資料庫

  下載MySQLdb模組並安裝,參考https://blog.csdn.net/weixin_42840933/article/details/85274313

    資料庫連線

    db = MySQLdb.connect("localhost", "root", "root", "db_mtest", charset='utf8')
    
     獲取遊標
    cursor = db.cursor()
    
   執行sql
    cursor.execute(sql)
    db.commit()

四、程式碼
  
import urllib.request
from io import BytesIO
import gzip
from bs4 import BeautifulSoup
import re
import MySQLdb

def getHtmls(url): headers = {'User-Agent': 'User-Agent:Mozilla/5.0'} datal=urllib.request.Request(url,headers=headers) response=urllib.request.urlopen(datal) print ('state code',response.getcode()) data=response.read() str=data.decode('utf-8') soup=BeautifulSoup(str[1:])
return soup def getMessage(soup): items=soup.find_all(class_='con_js') db = MySQLdb.connect("localhost", "root", "root", "db_mtest", charset='utf8') cursor = db.cursor() #進入二級網址 for item in items: secsoup=getHtmls('http://www.ctctw.com'+str(item.a['href'])) #獲取主要資訊 #標題 msoup=secsoup.find(class_='r_494') #小項 smsoupitems=msoup.find(class_='t_494_2').find_all(class_='bt') print(msoup.find(class_='t_494_1').text) sql = 'insert into zjwsj values(null,\'' + str(msoup.find(class_='t_494_1').text) + '\'' for sit in smsoupitems: sql=sql+',\''+str(sit.text).split("")[1]+'\'' print(sit.text) #詳細介紹 strs=secsoup.find_all(class_='ft_930_2')[0] print((strs.text).strip()) sql=sql+',\''+(strs.text).strip()+'\')' try: print(sql) cursor.execute(sql) db.commit() except : db.rollback() if __name__=='__main__': for i in range(13): try: getMessage(getHtmls('http://www.ctctw.com/list.aspx?node=3&f=cn&page='+str(i+1))) except: getMessage(getHtmls('http://www.ctctw.com/list.aspx?node=3&f=cn&page=' + str(i + 1)))