gpt4 book ai didi

python - 如何通过 Python 抓取动态网页

转载 作者:太空狗 更新时间:2023-10-29 15:40:18 25 4
gpt4 key购买 nike

[我想做什么]

抓取下面的网页以获取二手车数据。
http://www.goo-net.com/php/search/summary.php?price_range=&pref_c=08,09,10,11,12,13,14&easysearch_flg=1

[问题]

抓取整个页面。在上面的 url 中,只显示前 30 个项目。这些可以被我在下面写的代码刮掉。到其他页面的链接显示为 1 2 3... 但链接地址似乎是用 Javascript 编写的。我用谷歌搜索了有用的信息,但找不到任何信息。

from bs4 import BeautifulSoup
import urllib.request

html = urllib.request.urlopen("http://www.goo-net.com/php/search/summary.php?price_range=&pref_c=08,09,10,11,12,13,14&easysearch_flg=1")

soup = BeautifulSoup(html, "lxml")
total_cars = soup.find(class_="change change_01").find('em').string
tmp = soup.find(class_="change change_01").find_all('span')
car_start, car_end = tmp[0].string, tmp[1].string

# get urls to car detail pages
car_urls = []
heading_inners = soup.find_all(class_="heading_inner")
for heading_inner in heading_inners:
href = heading_inner.find('h4').find('a').get('href')
car_urls.append('http://www.goo-net.com' + href)

for url in car_urls:
html = urllib.request.urlopen(url)
soup = BeautifulSoup(html, "lxml")
#title
print(soup.find(class_='hdBlockTop').find('p', class_='tit').string)
#price of car itself
print(soup.find(class_='price1').string)
#price of car including tax
print(soup.find(class_='price2').string)

tds = soup.find(class_='subData').find_all('td')
# year
print(tds[0].string)
# distance
print(tds[1].string)
# displacement
print(tds[2].string)
# inspection
print(tds[3].string)

[我想知道的]

如何抓取整个页面。我更喜欢使用 BeautifulSoup4 (Python)。但如果那不是合适的工具,请给我看其他工具。

[我的环境]

  • Windows 8.1
  • python 3.5
  • PyDev( eclipse )
  • BeautifulSoup4

任何指导将不胜感激。谢谢。

最佳答案

你可以使用selenium像下面的示例:

from selenium import webdriver
driver = webdriver.Firefox()
driver.get('http://example.com')
element = driver.find_element_by_class_name("yourClassName") #or find by text or etc
element.click()

关于python - 如何通过 Python 抓取动态网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33795799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com