亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

你能解釋一下代碼的第 8 行和第 9 行是如何工作的嗎?

你能解釋一下代碼的第 8 行和第 9 行是如何工作的嗎?

蕭十郎 2022-06-22 18:02:21
我不明白下面代碼中的第 8 行和第 9 行是如何工作的。如果有人要描述這兩行代碼,我會很容易理解代碼。下面是代碼:import requestsfrom bs4 import BeautifulSoupsession = requests.session()form_page = session.get('http://www.educationboardresults.gov.bd')form = BeautifulSoup(form_page.content, 'lxml')#Line 8:captcha = eval(form.form.table.table.find_all('tr')[6].find_all('td')[1].get_text())#Line 9:data = dict(sr=3,et=0,exam='ssc', year='2011', board="comilla", roll="16072541", reg="8718001254", value_s=captcha)
查看完整描述

2 回答

?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

一個html表是這樣構建的:

一堆行<tr>,每一行都有一些列<td>。

驗證碼行的作用是:

  1. find_all('tr'): 獲取所有行 ( <tr>)

  2. [6]: 具體獲取第 7 行

  3. find_all('td')在該行內,獲取所有列 ( <td>)

  4. [1]: 具體獲取第二列

我們現在有一個包含單個值的表格單元格。

5)get_text()獲取該單元格的實際文本內容。

您可以將點“xy”讀作“從 x 中返回 y”

現在,eval()將執行此表格單元格值,就好像它是代碼的一部分一樣。執行返回的任何值都存儲在captcha變量中。

eval("print('hello')")是相同的print('hello')

數據線只是建立一個字典。我不確定我是否理解所使用的名稱,但您可以使用字典按名稱調用成員,例如data['sr']它將返回 3。 data['value_s']存儲的值captcha


查看完整回答
反對 回復 2022-06-22
?
幕布斯7119047

TA貢獻1794條經驗 獲得超8個贊

第 8 行的工作原理是它允許您正在閱讀的資源的所有者(位于http://www.educationboardresults.gov.bd)在您的機器上執行任意代碼。

例如,如果所有者要放入表中,__import__(“shutil”).rmtree(“/“, True)那么他們只是設法烤了您有權訪問的每個文件。

因此,您可能希望考慮完全重寫第 8 行。


查看完整回答
反對 回復 2022-06-22
  • 2 回答
  • 0 關注
  • 234 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號