我正在抓取一个没有页面的网页,我怎么能抓住这些页面来获取我想要的信息。假设我正在抓取网址here 这个页面有两个页面,我如何抓取这些总页数并获得总产品列表。
到目前为止我做了什么: 我正在抓取他们正在通过正则表达式抓取特定网址的网址 并试图去那个网址,并从该链接他们没有其他页面包含信息链接产品名称。我希望从所有页面中获取该产品名称。
我的代码:
from bs4 import BeautifulSoup
import urllib.request
import re
import json
response = urllib.request.urlopen("http://i.cantonfair.org.cn/en/ExpProduct.aspx?corpid=0776011226&categoryno=446")
soup = BeautifulSoup(response, "html.parser")
productlink = soup.find_all("a", href=re.compile(r"ExpProduct\.aspx\?corpid=[0-9]+.categoryno=[0-9]+"))
productlink = ([link["href"] for link in productlink])
print (productlink)
在此之后我被卡住了。我正在使用python 3.5.1和Beautifulsoup
答案 0 :(得分:0)
如果您想抓取页面上的图片,我建议CSS Selectors
获取项目列表,之后您可以搜索下一页。当你停止下一页时,你知道你已经完成了。
def get_next_page(soup):
pages = soup.select('div[id="AspNetPager1] a[href]')
for page in pages:
if page.text == 'Next':
return page
response = urllib.request.urlopen("http://i.cantonfair.org.cn/en/ExpProduct.aspx?corpid=0776011226&categoryno=446")
soup = BeautifulSoup(response, "html.parser")
url = 'http://i.cantonfair.org.cn/en/'
products = []
next_page = get_next_page(soup)
while next_page is not None:
products += soup.select('div[class="photolist"] li')
response = urllib.request.urlopen(url + next_page['href'])
soup = BeautifulSoup(response, "html.parser")
next_page = get_next_page(soup)
products += soup.select('div[class="photolist"] li')
product_names = set()
for product in products:
product_names.add(product.text)
print(product_names)
答案 1 :(得分:-1)