无法使用python提取整个网页

时间:2016-04-17 17:44:01

标签: python web-scraping

我正在尝试从网页中提取值。

我想要的网址是: http://www.flipkart.com/philips-qt4005-15-trimmer/p/itmdze53vthypqhb?pid=SHVDGGZPC8PXJ7HR&al=wUEQZ4vph4oJqeH0CGNkrsldugMWZuE7eGHgUTGjVrpjizeD%2FNvlpAEwWx6I1Qy9R9ViMaFmI%2Bc%3D&ref=L%3A-1246372967349401781&srno=b_1

我要提取的值是@Override public boolean onMarkerClick(Marker marker) { String place = marker.place(); ... }

首先,我使用以下代码将html页面的源存储到本地文件。

Tue, 19th Apr

然后我编写了以下代码来提取值:

import requests
from bs4 import BeautifulSoup
import re
f = open("deldate.csv",'w')
g = open("flip.csv",'w')
request = requests.get("http://www.flipkart.com/philips-qt4001-15-trimmer-men/p/itmdu7ymtpdptghq?pid=SHVDU7YMTPDPTGHQ&al=wUEQZ4vph4o9VS1qRXcBE8ldugMWZuE7eGHgUTGjVrrcVamAbZwaUArMgFo2ArKEQzMEtMlIvg8%3D&ref=L%3A6510162326865727417&srno=p_2&query=trimmers+for+men&otracker=from-search").text
soup = BeautifulSoup(request)
g.write(str(soup))

但程序返回null值。所以,我打开了保存网页html的文件,并试图搜索'星期二,4月19日',但无法找到它。

我尝试过使用

for line in soup.findAll('div', class_="delivery-ndd-help-message fk-hidden"):
    for line1 in line.findAll('span',class_="fk-bold"):
        ddate = line2.text
        print (str(ddate))

希望从网页中提取所有内容,但即使这样似乎也不起作用。

有人可以建议是否有更好的方法从网页中提取所有内容?

2 个答案:

答案 0 :(得分:0)

您可能会参考RECENT TOP REVIEWS列表。

日期有一个特定的班级review-date

尝试过滤:

soup.findAll('p', class_="review-date")

答案 1 :(得分:0)

请改为尝试:

import urllib
from bs4 import BeautifulSoup

url = "http://www.flipkart.com/philips-qt4005-15-trimmer/p/itmdze53vthypqhb?pid=SHVDGGZPC8PXJ7HR&al=wUEQZ4vph4oJqeH0CGNkrsldugMWZuE7eGHgUTGjVrpjizeD%2FNvlpAEwWx6I1Qy9R9ViMaFmI%2Bc%3D&ref=L%3A-1246372967349401781&srno=b_1"
html = urllib.urlopen(url).read()

soup = BeautifulSoup(html)

这将收集整个网页。现在,如果要搜索段落标记或其他内容,可以使用以下行:

tags=soup('p')

然后,您可以遍历标记并搜索您感兴趣的数据。