首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用python从网站中提取价值?

如何用python从网站中提取价值?
EN

Stack Overflow用户
提问于 2017-05-14 02:44:45
回答 1查看 809关注 0票数 1

我正在编写一个价格网络代码,以提取价格、数量等数据。我使用BeautifulSoup的代码从目标网站的html标记中提取文本。但是,它返回了一堆文本,在将它们打印到csv文件之前,我不知道如何分割或分离它们。

代码语言:javascript
复制
from urllib import urlopen as uReq
from bs4 import BeautifulSoup as soup

my_url = 'https://www.digikey.com/products/en?keywords=568-3651-5-ND'
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()
page_soup = soup(page_html, "html.parser")
containers = page_soup.body.script
filename = "products.txt"
f = open(filename, "w")
headers = "data"
f.write(headers)
data = containers.text
f.write(data + "\n")
f.close()

它回来的时候:

代码语言:javascript
复制
var utag_data = {
            page_site: 'US',
            page_language: 'en',
            wt_use_udo: 'True',
            page_content_group: 'Part Search',
            page_content_sub_group: 'Part Detail',
            page_title: 'Part Detail',
            page_type: 'PS',
            page_sub_type: 'PD',
            page_id: 'PD',
            **pn_sku: '1740-1017-ND',**
            part_id: '1154763',
            **part_available: '4324',**
            transaction_type: 'v',
            transaction_quantity: '1',
            supplier_id: '1740'
                , part_search_filter: 'No Filter'
                , **part_search_term: '568-3651-5-ND'**
                , part_search_term_ext: '568-3651-5-ND'
                    , part_search_results_count: 1
            , video_source: 'Part Detail'
        }

我尝试了find和regex,但结果与我所期望的数量(part_available:'4324')和sku_num (pn_sku:'1740-1017-ND')不一样。我是刚开始编写python和代码,请留下任何评论。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-14 03:21:25

与其尝试使用正则表达式,不如使用json。但是给定的脚本不是严格格式化的json。相反,您可以使用 parser

代码语言:javascript
复制
import yaml
data = yaml.load(containers.text.replace('var utag_data =', '', 1))
with open('products.csv', 'w') as f:
    f.write('part,sku\n')
    f.write('{},{}\n'.format(data['part_available'], data['pn_sku']))

结果csv文件内容:

代码语言:javascript
复制
part,sku
4324,1740-1017-ND
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43959896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档