<p>这将根据您当前的搜索关键字生成结果。您需要发送post http请求以及适当的参数来访问内容。为了使您当前的尝试成功,我在有效负载中使用了一些字符串格式</p>
<pre><code>import requests
from bs4 import BeautifulSoup
class Bse:
def __init__(self):
self.duckDuckUrl = 'https://html.duckduckgo.com/html/'
self.payload = {'q': 'bse {} stock price','b': ''}
self.headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:84.0) Gecko/20100101 Firefox/84.0'}
def currentPrice(self,symbol):
self.payload['q'] = self.payload['q'].format(symbol)
res = requests.post(self.duckDuckUrl,data=self.payload,headers=self.headers)
soup = BeautifulSoup(res.text,'html.parser')
return soup.find('a',class_='result__a').get("href")
if __name__ == '__main__':
bse = Bse()
print(bse.currentPrice('reliance'))
</code></pre>
<p>使用get请求:</p>
<pre><code>link = "https://html.duckduckgo.com/html/?"
params = {'q': 'nse {} stock price'}
def fetch_first_link(s,symbol):
params['q'] = params['q'].format(symbol)
res = s.get(link,params=params)
soup = BeautifulSoup(res.text,"lxml")
item = soup.select_one(".result__title > a.result__a").get("href")
return item
if __name__ == '__main__':
with requests.Session() as s:
s.headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36'
print(fetch_first_link(s,'reliance'))
</code></pre>