我检查了类似的问题,但找不到解决方案......
我正试图从以下页面中缩短额外旅行时间(46):[{3}}
我尝试了2种方法(Xpath& find class),但两者都给出了空的回报。
import requests
from bs4 import BeautifulSoup
from lxml.html import fromstring
page = requests.get("https://www.tomtom.com/en_gb/trafficindex/city/istanbul")
tree = fromstring(page.content)
soup = BeautifulSoup(page.content, 'html.parser')
#print([type(item) for item in list(soup.children)])
html = list(soup.children)[2]
g_data = soup.find_all("div", {"class_": "big.ng-binding"})
congestion = tree.xpath("/html/body/div/div[2]/div[2]/div[2]/section[2]/div/div[2]/div/div[2]/div/div[2]/div[1]/div[1]/text()")
print(congestion)
print(len(g_data))
我错过了一些明显的东西吗?
非常感谢帮忙!
答案 0 :(得分:1)
仅仅{1}}不足以实现它。该网站使用JavaScript生成内容,因此您必须使用其他工具,例如class="text-big ng-binding"
。
div = soup.find_all('div', attrs={'class' : 'text-big ng-binding'})
result = div[0].text
我可以看到两种方法来提取额外的时间:
1.使用div
寻找Per day
。
div = soup.find_all(text=re.compile('Per day'))
result = div.find_previous('div').find_previous('div').text
2.首先找到包含RowVectorXcd CSD(n_Epochs, fftsize);
for(int j = 0; j < fftsize; j++) {
std::complex<double> cospectrum = freqvec(j).real() * freqvec2(j).real() + freqvec(j).imag() * freqvec2(j).imag() ;
std::complex<double> quadspectrum = freqvec(j).real() * freqvec2(j).imag() - freqvec(j).imag() * freqvec2(j).real() ;
std::cout << "cospectrum:"<<cospectrum<< std::endl;
CSD(j) = sqrt( pow( cospectrum, 2 ) + pow( quadspectrum, 2) ) ;
文本的{{1}},然后再进行两次分组
{{1}}