BeautifulSoup基礎實戰
安裝:pip install beautifulsoup4
常用指令:
from bs4 import BeautifulSoup as bs
import urllib.request
data=urllib.request.urlopen("https://www.cnblogs.com/mcq1999/").read().decode("utf-8","ignore")
bs1=bs(data)
print(bs1.prettify()) #格式化輸出
print(bs1.title) #獲取標簽title,bs對象.標簽名
print(bs1.title.string) #獲取標簽title的文字
print(bs1.title.name) #獲取標簽名,如title
print(bs1.a.attrs) #獲取屬性列表 鍵值對
print(bs1.a['name']) #獲取某個屬性對應的值
print(bs1.find_all('a')) #提取所有某個節點的內容,傳參是標簽名
print('---------------------------------')
print(bs1.find_all(['a','ul']))
k1=bs1.ul.contents #提取當前節點的所有子節點,返回一個列表
k2=bs1.ul.children #返回一個生成器
allulc=[i for i in k2]
PhantomJS基礎實戰
效率不高,但可以解決很多反爬問題,本質是一個無界面的瀏覽器,通過命令行(或python)操縱。通常難點部分通過PhantomJS寫,然后將數據交給urllib或scrapy進行后續處理。
目前已PhantomJS和selenium分手,以后再學。
分布式爬蟲之docker基礎
鏡像:不可以改變內容
容器:可以改變內容,相當于虛擬機,默認情況下彼此封閉
優點:輕部署、省成本、部署遷移方便
安裝:yum -y install docker
啟動和關閉:
systemctl start docker
systemctl stop docker
啟動時如果出現
可以參考下面這篇博客,我的就這樣成功了,其他的方法都沒用
https://blog.csdn.net/w1316022737/article/details/83692701
最好再修改一下docker的鏡像源,不然運行的很慢:
https://blog.csdn.net/julien71/article/details/79760919
查看已有鏡像:docker images
下載鏡像:docker pull
創建容器:docker run -tid
查看容器:docker ps -a
進入容器:docker attach
退出容器:一般不用exit,因為會停止容器。我們用ctrl+p+q即可。
在容器里的操作不會影響本機,相當于在虛擬機里再開了個虛擬機
啟動容器:docker start …
封裝容器成鏡像:docker commit 2d6 mytest:v1
基于鏡像給容器起名字: docker run -tid --name testabc a2a (基于a2a這個鏡像創建一個名為testabs的容器)
docker run -tid --name h1 mytest:v1
docker run -tid --name h2 --link h1 mytest:v1 (將容器h2鏈接到h1,即讓h2和h1通信)
這里我用ubuntu的鏡像發現ping、yum等等命令都沒有,所以改用了centos的鏡像。
[root@hadoop106 mcq]# docker attach fe3
[root@fe3489945006 /]# cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.6 c1 4c3dab0e013c
172.17.0.7 fe3489945006
[root@fe3489945006 /]# ping 172.17.0.6
將docker鏡像封裝為文件:docker save -o /mytest.tar c3e8
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
