使用webscraping python 2提取表的数据

时间:2017-11-30 14:49:17

标签: python-2.7 web-scraping

我需要使用websraping python 2.7从web中提取表的数据 我有这个代码:

from bs4 import BeautifulSoup as soup
import json 
import pandas as pd                     
from urllib import urlopen
import requests
import re
from IPython.display import Image
PRODUIT= []
CAS = []
Ref_Catalogue = []
Quantite = []
Prix_HT = []
client = requests.Session()
HOMEPAGE_URL = 'https://www.scbt.com/scbt/fr/browse/chemicals-Research-Reagents-by-Application-Tyrosine-Kinase-Inhibitors/_/N-118tblu'
html = client.get(HOMEPAGE_URL).content
soup = soup(html)
cont = soup.find("table", {"class":"table plp-table table-hover"})
cont2 = cont.find("tbody")
#tr = cont2.find("tr")
for contk in cont2:
    tr = contk.find("tr")
    print tr
#print tr
############################################
#print col
columns = {'PRODUIT': PRODUIT, 'CAS': CAS, 'Ref_Catalogue': Ref_Catalogue, 'Quantite': Quantite, 'Prix_HT': Prix_HT}
df = pd.DataFrame(columns)
df

但我得到了这个结果

-1
None
-1
None
-1
None
-1
None
-1
None
-1
None
-1
None
-1
None
-1
None
-

我需要从表中提取数据吗? 我如何提取PRODUIT':PRODUIT,' CAS':CAS,' Ref_Catalogue':Ref_Catalogue,' Quantite':Quantite,' Prix_HT&# 39;:Prix_HT thhnx for all

1 个答案:

答案 0 :(得分:0)

你走了。运行脚本,我希望你能得到你想要的数据。

import requests
from bs4 import BeautifulSoup

res = requests.get('https://www.scbt.com/scbt/fr/browse/chemicals-Research-Reagents-by-Application-Tyrosine-Kinase-Inhibitors/_/N-118tblu')
soup = BeautifulSoup(res.text, "lxml")
for items in soup.select(".table tr"):
    data = ' '.join([' '.join(item.text.split()) for item in items.select("th,td")[:-2]])
    print(data.strip())

我已经编写了与python 3兼容的代码。因此,您可能需要应用一些小的更改以适应python 2.7。