Pythonに基づいて51 ctoブログのページを登って情報の過程を解析します。
紹介する
爬虫類といえば、インターネットの友達はみんなよく知らないはずです。今はPythonを使ってウェブサイトのデータを取るのは非常によくある手段です。多くの友達は豆瓣の情報を登用しています。
実験環境
1.Pythonをインストールする3.7
2.requests、bs 4モジュールをインストールする
実験ステップ
1.Python 3.7環境をインストールする
2.requests、bs 4モジュールをインストールする
cmdを開けて、入力:pip install requests-ihttps://pypi.tuna.tsinghua.edu.cn/simple/
bs 4を再インストールし、入力:pip install bs 4-ihttps://pypi.tuna.tsinghua.edu.cn/simple/
取付後に-iを加えるhttps://pypi.tuna.tsinghua.edu.cn/simple/ 清华镜像からモジュールをダウンロードすると、速度が多くなります。
3.コードの作成
爬虫類といえば、インターネットの友達はみんなよく知らないはずです。今はPythonを使ってウェブサイトのデータを取るのは非常によくある手段です。多くの友達は豆瓣の情報を登用しています。
実験環境
1.Pythonをインストールする3.7
2.requests、bs 4モジュールをインストールする
実験ステップ
1.Python 3.7環境をインストールする
2.requests、bs 4モジュールをインストールする
cmdを開けて、入力:pip install requests-ihttps://pypi.tuna.tsinghua.edu.cn/simple/
bs 4を再インストールし、入力:pip install bs 4-ihttps://pypi.tuna.tsinghua.edu.cn/simple/
取付後に-iを加えるhttps://pypi.tuna.tsinghua.edu.cn/simple/ 清华镜像からモジュールをダウンロードすると、速度が多くなります。
3.コードの作成
# 51cto
import requests
import bs4
import re
def open_url(url):
#
# proxies = {"http": "127.0.0.1:1080", "https": "127.0.0.1:1080"}
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/57.0.2987.98 Safari/537.36'}
# res = requests.get(url, headers=headers, proxies=proxies)
res = requests.get(url, headers=headers)
return res
def find_titles(res):
soup = bs4.BeautifulSoup(res.text, 'html.parser')
#
titles = []
targets = soup.find_all("a", class_="tit")
for each in targets:
titles.append(each.text.strip())
#
reads = []
read1 = soup.find_all("p", class_="read fl on")
read2 = soup.find_all("p", class_="read fl")
for each in read1:
reads.append(each.text)
for each in read2:
reads.append(each.text)
#
comment = []
targets = soup.find_all("p", class_='comment fl')
for each in targets:
comment.append(each.text)
#
collects = []
targets = soup.find_all("p", class_='collect fl')
for each in targets:
collects.append(each.text)
#
result = []
length = len(titles)
for i in range(length):
result.append(titles[i] + '
' + reads[i] + ' ' + comment[i] + ' ' + collects[i] + '
')
return result
#
def find_depth(res):
soup = bs4.BeautifulSoup(res.text, 'html.parser')
depth = soup.find('li', class_='next').previous_sibling.previous_sibling.text
return int(depth)
def main():
host = "https://blog.51cto.com/13760351"
res = open_url(host)
depth = find_depth(res)
result = []
for i in range(1, depth + 1): # 1 6
url = host + '/p' + str(i) # /pi
res = open_url(url)
result.extend(find_titles(res))
#
with open("51cto .txt", "w", encoding="utf-8") as f:
for each in result:
f.write(each)
#
if __name__ == "__main__":
main()
4.コードを実行し、効果を確認する
postfix-- ( )
10000+ 2 9
( !) VMware Workstation 14 CentOS 7 【 】
10000+ 10 0
CentOS 7 YUM MySQL 5.7
136 0 1
Docker ( )
153 0 0
159 0 0
K8S Rancher 2.X
1068 0 0
python ( )
260 0 0
DNS--
170 0 0
python ( )
353 0 0
K8S Dashboard nginx
124 0 0
CentOS 7 K8S
280 0 0
MySQL --
136 0 0
CentOS 7 SVN
192 2 0
MYSQL
178 0 0
CentOS 8 nginx
509 0 0
CentOS 7 nginx
207 0 0
Linux --Awk
940 0 0
Liunx
163 0 0
Linux --Sed
178 0 0
MYSQL
110 0 0
MYSQL --
269 0 0
MYSQL
271 0 0
Ansible
119 0 0
CentOS 8 -- Ansible
358 0 0
CentOS 7 pv ( )
2139 0 4
MYSQL -- ,
242 0 0
MySQL
178 0 0
MYSQL --
256 0 0
MYSQL --
132 0 0
MYSQL --
205 0 0
ELK Tomcat
316 0 0
CentOS 8 ELK
730 0 0
Docker
246 0 0
Docker
143 0 0
Docker
195 0 0
Docker
143 0 0
CentOS 8 ( )
4570 0 0
Docker nginx + tomcat
501 0 0
Docker war
2173 0 1
Docker
901 0 0
CentOS 8 docker
4848 0 0
confluence jira
225 0 0
CentOS 7.6 Gitlab
234 0 0
confluence
516 0 0
Shell tomcat
263 0 0
Centos7 465
774 0 0
MQTT ,
640 0 0
CentOS 7.6 Redis
150 0 0
CentOS 7.6 Confluence Jira( )
5800 0 0
Centos 7 MQTT(EMQ)
943 0 0
CentOS 7 yum php
2527 0 0
Python3
886 0 0
Python3 Mysql
820 0 1
Selenium 8
1536 0 0
Python Selenium zabbix
568 0 0
Zabbix QQ
2043 0 0
CentOS 7 Nexus
664 0 1
CentOS 7 ifconfig
687 0 0
CentOS 7
1161 0 0
Shell --Postfix
7066 0 4
ip,
10000+ 6 0
Shell cobbler( + )
10000+ 3 0
Shell Cobbler ( + )
5292 0 6
CentOS 7.4 7.6
4738 4 0
-- windows WiFi
4518 0 0
Jenkins
7574 0 1
Python
1671 6 1
Jenkins nodejs ( )
1445 0 2
Jenkins Java ( )
9192 0 1
Jenkins --war
9444 2 3
shell python zabbix
1112 0 1
CentOS 7 Jenkins ( )
7223 4 0
Window 10 python 3.7 + selenium ( )
2984 0 0
CentOS 7 Jenkins
3259 0 1
Discuz (shell + Python )
1783 0 0
Shell LA/NMP ( + )
3068 0 0
shell Tomcat
2192 0 1
【 !】Vi
789 4 1
--- LAMP + Discuz 【 】
2032 0 2
【 】PXE CentOS 6
4144 0 1
CentOS 7 Oracle 12c 【 】
4776 0 1
MFS 【 】
3049 0 1
Memcached + LAMP 【 】
3523 4 0
MySQL-MMM
1123 0 0
MySQL ( )
573 2 1
Mysql
716 0 0
mysql ---
999 0 0
Haproxy web
496 2 0
MySQL (5.7 )
568 0 0
PXE ---- ,
1521 0 0
PXE ----
705 0 0
Nginx ,
767 0 0
CentOS 7 Nginx+Tomcat
685 0 0
Nginx
618 0 0
Nginx --- 、 、
599 0 0
Tomcat
346 0 0
Apache ----
748 0 0
Apache ( )
638 0 1
Apache web
747 0 0
CentOS 6 yum Apache
2072 0 0
AWStats ( awstats )
10000+ 0 0
cobbler ( epel )
10000+ 8 2
DNS !
679 0 0
FTP ---
4440 0 0
FTP -- ,
749 0 0
FTP --
1296 2 0
Linux 6.5 yum
2206 0 0
【 】 John the Ripper ( )
2669 4 1
Linux window
634 12 0
Redhat Linux 6.5 【 】
7550 8 2
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。