就以之前看到的三人行書屋為例:三人行書屋截圖如下。
這個**用外掛程式分析了一下,用的是[git](主題。頁面的主要分析點截圖中標紅框-文章目錄、文章、文章標籤。涉及的表有:wp_terms、wp_posts、wp_term_taxonomy、wp_term_ralationships.
wp_terms: 標籤、目錄的儲存表。term_id-自增id。name-標籤或目錄的名稱。slug-urlencode後的內容。
wp_term_taxonmy: 目錄、標籤的描述資訊,主要字段:term_taxonomy_id-該錶的自增id,term_id-對應上面的wp_terms的term_id,taxonomy- 目錄或者標籤(category or post_tag),count:計數器,對應截圖中的標籤下的數字。
wp_term_relationships: wp_terms 和 wp_posts的關聯表。也就是說,這張表決定了一篇文章就是是什麼目錄,有什麼標籤。主要字段:object_id - 對應的是wp_posts中的id。term_taxonomy_id對應的是wp_term_taxonomy中的term_taxonomy_id。object_id、term_taxonomy_id 是多對多的關係。
說是二次開發,其實並沒有什麼具體的目標,沒想好建立什麼**。就當前期的熱身活動,熟悉和驗證結論是否正確。我還是使用我最熟悉的python作為開發語言。
具體哪個**就不透露了。大多數**這都有我們所需的元素。使用python簡單編寫了scrapy爬蟲(簡單點的直接用requests爬了),我們需要用到的素材均作單獨字段儲存。
我推薦比較好的做法是使用sqlalchemy對源資料表和wp資料表進行建模。然後根據wp各個表的關係做事務插入。即使用乙個session對上面提到的幾個表做完整性的資料插入。
這裡推薦乙個快速生成資料模型的工具,配合sqlalchemy使用事半功倍。sqlacodegen
具體操作方法:
1. pip install sqlacodegen
2. sqlacodegen --outfile=models.py mysql:
第二部操作是對整個庫的建模,當然也可以選擇對某張表進行建模。
sqlacodegen --outfile=models.py mysql: --tables teacher,student
我具體的處理邏輯,部分偽**如下(寫的太亂,只能拿出部分偽**獻醜了)
post = spider_session.query(spiderdata).filter(spiderdata.id == 1) # 從爬蟲庫中選出一條
...# wordpress 資料庫插入
wp_post = wppost()
wp_post.post_title = post.article_name
wp_post.post_content = post.content
wp_post.post_excerpt = post.short_introduction
wp_post.post_status = "publish"
session_wp.add(wp_post)
session_wp.commit()
# 一下是wp_terms表,term表可以提前把標籤和分類先做插入,這裡只做查詢
terms = spider_session.query(spiderdata).filter(spiderdata.id == 1).all()
# 插入wp_terms
for term in terms:
# 在wp_terms 中找到這個標籤對應的id。前提是你已經插入。
term_id = session_wp.query(wpterm).filter(wpterm.name == term.name).first()
# 對wp_term_relationships進行處理
object_id = wp_post.id
wp_relationship = wptermrelationships()
wp_relationship.object_id = object_id
wp_relationship.term_id = term_id
session_wp.add(wp_relationship)
session_wp.commit()
以上**只是提供思路實際應用中注意異常處理等。
還能想起但是第一次接觸wordpress時的一臉懵逼,沉下心研究一段時間你就會發現,原來很多事情在你全力做了之後就會變得很簡單。
以上。
php 後台資料庫與前台請求結合
get請求 預設 get獲取 get請求中引數值 username get username password get password echo username username.password password post請求,開啟網頁沒值 獲取 body 體中,這兩個變數的值 usernam...
關於pymysql讀取不到後台資料庫更新的資料
今天做乙個監控後台資料庫資料的程式中,使用了pymysql,但是在每次使用游標物件select物件時資料都是乙個樣。原因在於 1.mysql的儲存引擎inoodb的事務隔離級別預設是 可重複讀 repeatable read 例如a客戶端事務未提交,而b客戶端事務修改了資料,a客戶端只能讀取到小於等...
XML JSON 後台資料
xml 後台資料的長相 yibella 23dancing coding xml 有兩種解析方式第一種,是使用sax方式,其中使用的是 模式,遵循的nsxmlparserdelegate 詳情 第二種方式,是使用dom解析,使用的是第三方庫檔案gdataxml node 詳情 json 後台資料的長...