BeautifulSoup无法获取网络数据

时间:2020-07-27 16:19:12

标签: python html web-scraping beautifulsoup

我正在创建一个网络抓取工具,以从商会网站目录中提取公司名称。

我正在使用BeautifulSoup。页面和汤对象似乎正常工作,但是当我抓取HTML内容时,应在页面上填充目录名称,然后返回一个空列表。

试图抓取的网页:https://www.austinchamber.com/directory

这是HTML:

<div>
  <ul> class="item-list item-list--small"> == $0
    <li>
      <div class='item-content'>
        <div class='item-description'>
          <h5 class = 'h5'>Women Helping Women LLC</h5>

这是python代码:

def pageRequest(url):
    page = requests.get(url)
    return page

def htmlSoup(page):
    soup = BeautifulSoup(page.content, "html.parser")
    return soup

def getNames(soup):
    name = soup.find_all('h5', class_='h5')
    return name

page = pageRequest("https://www.austinchamber.com/directory")
soup = htmlSoup(page)
name = getNames(soup)
for n in name:
    print(n)

1 个答案:

答案 0 :(得分:0)

数据通过Ajax动态加载。要获取数据,可以使用以下脚本:

Entry

打印:

import json
import requests


url = 'https://www.austinchamber.com/api/v1/directory?filter[categories]=&filter[show]=all&page={page}&limit=24'

page = 1

for page in range(1, 10):
    print('Page {}..'.format(page))
    data = requests.get(url.format(page=page)).json()

    # uncommentthis to print all data:
    # print(json.dumps(data, indent=4))

    for d in data['data']:
        print(d['title'])