Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 带换行符的网页抓取数据_Python_Web_Web Scraping_Beautifulsoup - Fatal编程技术网

Python 带换行符的网页抓取数据

Python 带换行符的网页抓取数据,python,web,web-scraping,beautifulsoup,Python,Web,Web Scraping,Beautifulsoup,我正在尝试从该url中删除数据: 我正试图找回那句话 8GB 2133MHz LPDDR3板载存储器 或 16GB 2133MHz LPDDR3板载存储器 在containers=soup.findAll('tr',{'class':'product'})中的每个容器中使用BeautifulSoup。问题是它有换行符和多个换行符,这使得我很难解析。如何检索它?查看源代码,这里最好的选择是将BeautifulSoup与正则表达式相结合: import requests from bs4 impor

我正在尝试从该url中删除数据:

我正试图找回那句话

8GB 2133MHz LPDDR3板载存储器

16GB 2133MHz LPDDR3板载存储器


containers=soup.findAll('tr',{'class':'product'})中的每个容器中使用BeautifulSoup
。问题是它有换行符和多个换行符,这使得我很难解析。如何检索它?

查看源代码,这里最好的选择是将
BeautifulSoup
正则表达式相结合:

import requests
from bs4 import BeautifulSoup
import re

url = "https://www.apple.com/ca/shop/browse/home/specialdeals/mac/macbook_pro/13"

r = requests.get(url)
soup = BeautifulSoup(r.text, 'lxml')
for td in soup.select('td.specs'):
    m = re.search('^(8|16).*?onboard memory.*?$', td.text, flags=re.M|re.I)
    if not m:
        continue
    print(td.select_one('h3').text.strip())
    print('Full text: {} | Memory: {}'.format(m[0].strip(), m[1]))
    print('-' * 80)
此代码查找具有8或16 GB的所有产品并打印它们:

Refurbished 13.3-inch MacBook Pro 2.3GHz dual-core Intel Core i5 with Retina display - Space Grey
Full text: 8GB of 2133MHz LPDDR3 onboard memory | Memory: 8
--------------------------------------------------------------------------------
Refurbished 13.3-inch MacBook Pro 2.3GHz dual-core Intel Core i5 with Retina display - Silver
Full text: 8GB of 2133MHz LPDDR3 onboard memory | Memory: 8
--------------------------------------------------------------------------------
Refurbished 13.3-inch MacBook Pro 2.0GHz Dual-core Intel Core i5 with Retina Display — Space Grey
Full text: 8GB of 1866MHz LPDDR3 onboard memory | Memory: 8
--------------------------------------------------------------------------------
Refurbished 13.3-inch MacBook Pro 2.3GHz dual-core Intel Core i5 with Retina display - Silver
Full text: 8GB of 2133MHz LPDDR3 onboard memory | Memory: 8
--------------------------------------------------------------------------------
Refurbished 13.3-inch MacBook Pro 2.3GHz dual-core Intel Core i5 with Retina display - Space Grey
Full text: 8GB of 2133MHz LPDDR3 onboard memory | Memory: 8
--------------------------------------------------------------------------------
Refurbished 13.3-inch Macbook Pro 2.9GHz Dual-core Intel Core i5 with Retina Display - Space Grey
Full text: 8GB of 2133MHz LPDDR3 onboard memory | Memory: 8
--------------------------------------------------------------------------------
Refurbished 13.3-inch Macbook Pro 2.9GHz Dual-core Intel Core i5 with Retina Display - Silver
Full text: 8GB of 2133MHz LPDDR3 onboard memory | Memory: 8
--------------------------------------------------------------------------------
Refurbished 13.3-inch Macbook Pro 2.9GHz Dual-core Intel Core i5 with Retina Display - Silver
Full text: 8GB of 2133MHz LPDDR3 onboard memory | Memory: 8
--------------------------------------------------------------------------------
Refurbished 13.3-inch MacBook Pro 3.1GHz dual-core Intel Core i5 with Retina display - Silver
Full text: 8GB of 2133MHz LPDDR3 onboard memory | Memory: 8
--------------------------------------------------------------------------------
Refurbished 13.3-inch MacBook Pro 3.1GHz dual-core Intel Core i5 with Retina display - Space Grey
Full text: 8GB of 2133MHz LPDDR3 onboard memory | Memory: 8
--------------------------------------------------------------------------------
Refurbished 13.3-inch Macbook Pro 3.3GHz Dual-core Intel Core i7 with Retina Display - Space Grey
Full text: 16GB of 2133MHz LPDDR3 onboard memory | Memory: 16
--------------------------------------------------------------------------------
@安德烈·凯斯利。我想你能解决这个问题。谢谢