反正有没有刮具体的信息

时间:2019-11-26 23:35:36

标签: web-scraping python-requests web-crawler

如何获取“基本网址”中的“ star_recom”信息?

Star_recom的类型是数字(例如49%),如您在BaseUrl中看到的那样。

请检查代码,并告诉我是否有任何问题。

BaseUrl = 'https://www.jobplanet.co.kr/companies/90364/'
req = requests.get(BaseUrl)
soup = BeautifulSoup(req.text,'html.parser')
body = soup.find("div",{"class":"body_wrap"})
sbody= body.find("dl", {"class":"rate_bar_set"})


star_recom = body.find('div', class_='pie1').find('span', class_='txt_point').text.strip() 

1 个答案:

答案 0 :(得分:1)

您的代码是正确的,但它不会返回任何内容,因为您要抓取的数据是由体内的JavaScript函数编写的。

<div class="review_stats-pagination"></div>
<script>
  ;(function($){
    // Fill animations


    // Dummy data
    var data = [
      {label:'직원의 기업 추천율',val : 0.85},
      {label:'직원이 전망하는 성장 가능성',val : 0.81},
      {label:'이 기업의 CEO 지지율',val : 0.93 }
    ];

您可以尝试:

import re
BaseUrl = 'https://www.jobplanet.co.kr/companies/90364/'
req = requests.get(BaseUrl).text

# extract the values as it is in the dom
spans = re.findall( r',val\s*:\s*(.*?)}', req )
print(spans)

输出:

['0.85', '0.81', '0.93 ']

,如果您需要完全相同的信息:

# convert it to look like the data displayed on the html
text_as_website = ['{}%'.format(int(float(span) * 100)) for span in spans]
print(text_as_website)

输出:

['85%', '81%', '93%']