在多个网页中循环的Python问题

2024-10-01 04:49:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图循环通过多个房地产代理网站,刮取代理的名字和手机号码。在

我的代码:

locations = ['woollahra', 'chinatown', 'bondibeach','doublebay']
for location in locations:
    my_url = 'https://' + location + '.ljhooker.com.au/our-team'

uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()

page_soup = soup(page_html, "html.parser")

containers = page_soup.findAll("div", {"class":"team-details"})

for container in containers:
    agent_name = container.findAll("div", {"class":"team-name"})
    name = agent_name[0].text

    phone = container.findAll("span", {"class":"phone"})
    mobile = phone[0].text

    print("name: " + name)
    print("mobile: " + mobile)

然而,当我运行脚本时,它会跳过前三个网页(woollahra、chinatown、bondibeach),只从列表中的最后一个网站(doublebay)抓取信息。我不确定它为什么要这样做,或者如何让它在所有网页上循环。在


Tags: name代理网站containerhtmlpagephonemobile
1条回答
网友
1楼 · 发布于 2024-10-01 04:49:56

您应该在第一个循环中包含所有代码,否则循环只会更改变量my_url。因此,您所要做的就是将其余代码缩进:

locations = ['woollahra', 'chinatown', 'bondibeach','doublebay']
for location in locations:
    my_url = 'https://' + location + '.ljhooker.com.au/our-team'

    uClient = uReq(my_url)
    page_html = uClient.read()
    uClient.close()

    page_soup = soup(page_html, "html.parser")

    containers = page_soup.findAll("div", {"class":"team-details"})

    for container in containers:
        agent_name = container.findAll("div", {"class":"team-name"})
        name = agent_name[0].text

        phone = container.findAll("span", {"class":"phone"})
        mobile = phone[0].text

        print("name: " + name)
        print("mobile: " + mobile)

相关问题 更多 >