linux python wps doc 转 txt_耗时一周尝试踩坑,整理了一些Python实用知识点
很零碎的知識(shí)點(diǎn),有的是踩過(guò)的坑,不成系統(tǒng),但是絕對(duì)很有用,知道的可以回顧下,不太了解的可以多學(xué)習(xí)下
1、Python連接MySQL加編碼
記得加charset,沒(méi)加的話(huà)部署Linux服務(wù)器運(yùn)行可能有中文亂碼,已踩坑
2、最好用utf8mb4
很多時(shí)候我會(huì)用sqlalchemy創(chuàng)建連接數(shù)據(jù)庫(kù)引擎,charset用的utf8mb4,原因在于爬取的文本中有表情,utf8不行,同時(shí),數(shù)據(jù)庫(kù)、表,編碼也都要保持一致
3、好用的網(wǎng)頁(yè)解析庫(kù)PyQuery
from?pyquery?import?PyQuery?as?py覺(jué)得好用的原因:
1、語(yǔ)法類(lèi)似JQuery,好記
2、可以增刪改查html元素,然后下載網(wǎng)頁(yè),這點(diǎn)xpath就比較弱了,下面是我最近用到的一些方法,其他方法可以網(wǎng)上查查
# 爬蟲(chóng)下載網(wǎng)頁(yè)each_res = requests.get(url).content.decode("utf-8")
# 轉(zhuǎn)為pyquery文檔
doc =?py(each_res)
# 支持Class選擇器,remove用來(lái)刪除元素
doc(".site-navbar ul")("li").remove()
# 支持ID選擇器
doc("#search-form").remove()
# 獲取屬性href的值
doc(".pagemenu")("li:first-child")("a").attr["href"]
# 設(shè)置屬性href的值
doc(".pagemenu")("li:first-child")("a").attr("href",?"./")
# 遍歷對(duì)象
images_src = doc("img")
for?img in images_src:
??if?py(img).attr["src"]:
? ?print(py(img).attr["src"])
# 添加元素
doc("head").append('\n')
# 清空后在添加
doc(".page-right .item").empty().append("")
# 完美匹配jquery的eq()選擇方法
doc(".article-content")("div:last-child").eq(-1).remove()
# 大招來(lái)了,可以將上面增刪改查的文檔,直接寫(xiě)入html文件,就下載好網(wǎng)頁(yè)了
res?= doc.outer_html().encode("utf-8")
with?open("index.html",?"wb")?as?f:
# 寫(xiě)文件用bytes而不是str,所以要轉(zhuǎn)碼
? ?f.write(res)
4、Linux配置python3環(huán)境、pip軟鏈接
下方分別為解壓安裝,配軟連接,注意配python3和pip的時(shí)候,與/usr/bin下面的原本的python2和pip命名區(qū)分,一般情況下別去動(dòng)python2的軟鏈接,會(huì)導(dǎo)致centos包管理工具yum命令出問(wèn)題
ln?-s /usr/local/py365/bin/python3.6?/usr/bin/python3?ln?-s /usr/local/py365/bin/pip3 /usr/bin/pip3
5、網(wǎng)站地圖、robots協(xié)議
robots.txt可以告訴搜索引擎網(wǎng)站哪些數(shù)據(jù)能爬,如果你想利于網(wǎng)站排名,盡量少disallow,sitemap.xml網(wǎng)站地圖則是直接提交讓搜索引擎增加收錄,這兩個(gè)文件/路徑一般配在網(wǎng)站根目錄下,可以直接寫(xiě)到nginx加兩個(gè)路徑指向就行了,主要用來(lái)優(yōu)化網(wǎng)站,利于各加搜索引擎抓取網(wǎng)站信息,增加收錄和網(wǎng)站排名
location /sitemap.xml {
? ?alias?/var/www/chengxuyuan_12_10/sitemap.xml;
}
location /robots.txt {
? ?alias?/var/www/chengxuyuan_12_10/robots.txt;
}
6、Django orm查詢(xún)values
比如下方,我在查詢(xún)時(shí)候只需要文章的id和title數(shù)據(jù),則直接values查這兩個(gè)字段就行,這樣可以提高查詢(xún)效率
Article.objects.values("id","title")Q對(duì)象進(jìn)行邏輯查詢(xún),也很常用
filter(Q(is_delete=0)&(Q(title__contains=a)|Q(title__contains=b)))7、直接將一個(gè)字典保存mysql(鍵和列名一致)
dic = {"title": title,?"time": arttime,?"auth": auth,?"con":?con}df = pd.DataFrame.from_dict(dic, orient='index').T
conn = get_local_engine("centos_test")
df.to_sql("這里是表名", conn, if_exists='append',?index=False)
get_local_engine是我定義的一個(gè)獲取engine的方法
def?get_local_engine(dbname):db_flag =?"mysql"
host_ip =?"127.0.0.1"?
host_port =?3306
db_instance = dbname
user =?"root"
pawd =?"*************"?
charset =?"utf8"
engine_config =?'%s%s%s%s%s%s%s%s%s%s%s'?% ('mysql+pymysql://', user,?':', pawd,?'@', host_ip,?':', host_port,?'/', db_instance,?'?charset=utf8')
engine = create_engine(engine_config, encoding=charset, max_overflow=10)
return?engine
8、django admin站點(diǎn)引入富文本編輯器Kindeditor
1、kindeditor安裝包直接放在項(xiàng)目static下面
2、在admin.py中加入這段js
3、kindeditor中config.js改成原本admin文本域的id,如下方截圖圈到的
class?Media:# 在管理后臺(tái)的HTML文件中加入js文件, 每一個(gè)路徑都會(huì)追加STATIC_URL/
?js = (
? ? 'kindeditor/kindeditor-all.js',
? ? 'kindeditor/lang.zh_CN.js',
? ? 'kindeditor/config.js',
?)
編輯器效果圖
python爬蟲(chóng)人工智能大數(shù)據(jù)公眾號(hào)
總結(jié)
以上是生活随笔為你收集整理的linux python wps doc 转 txt_耗时一周尝试踩坑,整理了一些Python实用知识点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: su如何渲染(su怎么切换渲染器)
- 下一篇: dlink无线路由器手机怎么设置dlin