【发布时间】:2018-01-18 21:23:59
【问题描述】:
我想抓取一个网页:https://www.justdial.com/Mumbai/Dairy-Product-Retailers-in-Thane/nct-10152687
我需要所有商店名称、电话和地址的数据
但我最多只能做 10 次 导致加载您需要滚动网页的其他项目
我的代码:
import requests
import bs4
crawl_url = requests.get('https://www.justdial.com/Mumbai/Dairy-Product-
Retailers-in-Thane/nct-10152687', headers={'User-Agent': 'Mozilla/5.0'})
crawl_url.raise_for_status()
soup = bs4.BeautifulSoup(crawl_url.text, 'lxml')
for elems in soup.find_all('span', class_="jcn"):
select_a = elems.select('a')
for links in select_a:
href = links.get('href')
res = requests.get(href, headers={'User-Agent': 'Mozilla/5.0'})
xsoup = bs4.BeautifulSoup(res.text, 'lxml')
Name = xsoup.select('.fn')
tel = xsoup.select('.tel')
add = xsoup.select('.adrstxtr')
a = Name[0]
b = tel[0]
c = add[0]
print(a.getText())
print("--"*10)
print(b.getText())
print("--"*10)
print(c.getText())
print("=="*25)
当我们向下滚动页面时,其他项目会加载 所以我想知道如何获得我想要的任意数量的数据/项目
我试过this
但是没听懂嘛,而且我也没有那个POST方法:/
如果需要更多信息告诉我
【问题讨论】:
-
您可以将代码包装在一个函数中,并使用循环来获取下一页并将 html 传递给该函数。
-
谢谢!!那行得通:)
标签: python parsing web-scraping beautifulsoup screen-scraping