刮掉美国的职业信息网

时间:2017-11-08 15:59:00

标签: web-scraping beautifulsoup

我已获得雇主身份证,可用于获取业务范围:

https://www.careerinfonet.org/employ4.asp?emp_id=558742391

HTML包含tr / td表中的数据:

    Business Description:
         Exporters (Whls)   Primary Industry:Other Miscellaneous Durable Goods Merchant Wholesalers
     Related Industry:Sporting and Athletic Goods Manufacturing

所以我想得到

  • 出口商(Whls)
  • 其他杂项耐用品商人批发商
  • 体育和运动用品制造

我的示例代码如下所示:

import requests
from bs4 import BeautifulSoup

page = requests.get("https://www.careerinfonet.org/employ4.asp?emp_id=558742391")
soup = BeautifulSoup(page.text, 'html.parser')

div = soup.find('td', class_='content')    
for td in div.find_all('td'):
    print(td.text)

1 个答案:

答案 0 :(得分:0)

我想先说这个技术相当草率,但是如果每个你抓到的页面都有类似的设置,它就可以完成工作。

您的代码非常适合访问网页本身,我只需为每个元素添加一个检查,以确定它是"Business Description",还是"Primary""Related Industry"。然后,您可以访问相应的元素并使用它。

import requests
from bs4 import BeautifulSoup

page = requests.get("https://www.careerinfonet.org/employ4.asp?emp_id=558742391")
soup = BeautifulSoup(page.text, 'html.parser')

div = soup.find('td', class_='content')  
lst = div.find_all('td')  
for td in lst:
    if td.text == "Business Description:":
        print(lst[lst.index(td)+1].text)
    if td.text == "Primary Industry:":
        print(lst[lst.index(td)+1].text)
    if td.text == "Related Industry:":
        print(lst[lst.index(td)+1].text)

我做的另一个小修改是将div.find_all('td')放在一个可以编入索引的列表中,以访问你想要的元素。

希望它有所帮助!