爬取解析菜鳥教程python100例頁面,得到所有例子的題目、程式分析和**,並存入txt檔案。
#_*_ coding:utf8 _*_
import requests
from bs4 import beautifulsoup
# 1、獲取鏈結,解析鏈結
url =
''headers =
# 從自己的瀏覽器獲得,requests請求時模擬瀏覽器發起請求
html = requests.get(url, headers = headers)
.content.decode(
'utf-8'
)soup = beautifulsoup(html,
'lxml'
)# 解析鏈結
soup.prettify(
)# 2、獲取每個練習題的鏈結位址並且得到每個練習題的題目、程式分析和**
alink = soup.find(id=
'content'
).find_all(
'a')
with
open
('python-100.txt'
,'w'
, encoding=
'utf-8'
)as py100:
for i in alink:
dic =
relink =
''+str
(i.attrs[
'href'])
link = requests.get(relink, headers=headers)
.content.decode(
'utf-8'
) bs = beautifulsoup(link,
'lxml'
)# 獲取標題
#dic['title'] = bs.find(id='content').h1.text
dic[
'title'
]= bs.select(
'#content h1')[
0].get_text(
)# 獲取練習題題目內容
#dic['question'] = bs.find(id='content').find_all('p')[1].text
dic[
'question'
]= bs.select(
'#content p')[
1].get_text(
)# 獲取程式分析的內容
#dic['analysis'] = bs.find(id='content').find_all('p')[2].text
dic[
'analysis'
]= bs.select(
'#content p')[
2].text
# 獲取**,**的存放有兩種形式,一種儲存在div中,一種儲存在pre中
try:
dic[
'code'
]= bs.find(id=
'content'
).find(class_ =
'example_code'
).text
except exception as e:
dic[
'code'
]= bs.find(
'pre'
).text
py100.write(dic[
'title']+
'\n'
) py100.write(dic[
'question']+
'\n'
) py100.write(dic[
'analysis']+
'\n'
) py100.write(dic[
'code']+
'\n'
)
菜鳥教程 Python 100例
本部落格列出具體題目及其 github位址 1,題目 有四個數字 1 2 3 4,能組成多少個互不相同且無重複數字的三位數?各是多少?2,題目 企業發放的獎金根據利潤提成。利潤 i 低於或等於10萬元時,獎金可提10 利潤高於10萬元,低於20萬元時,低於10萬元的部分按10 提成,高於10萬元的部...
菜鳥教程Python100例 筆記
練習例項74 元組強制轉為list列表 練習例項76 函式名做引數傳遞 usr bin python print hello,world a 123 b 456 stra abc strb def strc a,b,c strd d e f stre abc def ghi strf gkl mno...
菜鳥教程python 100練習1(1 20)
1.題目 有四個數字 1 2 3 4,能組成多少個互不相同且無重複數字的三位數?各是多少?程式分析 可填在百位 十位 個位的數字都是1 2 3 4。組成所有的排列後再去 掉不滿足條件的排列。lit tar 1,2,3,4 for i in tar a tar.copy a.remove i for ...