Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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
Regex 解析源代码时正则表达式出现问题_Regex_Python 3.x_Web Scraping - Fatal编程技术网

Regex 解析源代码时正则表达式出现问题

Regex 解析源代码时正则表达式出现问题,regex,python-3.x,web-scraping,Regex,Python 3.x,Web Scraping,我试图从网页源代码中获取一些信息 例如,让我们以这个亚马逊产品为例 我们可以使用 查看来源: 我的目标是获取一些数据,例如产品说明1366x768 LED显示屏 我基本上是完整的源代码,然后使用正则表达式来获得我需要的数据 我在做这样的事情: import requests source = requests.get(someUrl) data = re.findall(r'<span class=\"a-list-item\">(.*?)<\/span>

我试图从网页源代码中获取一些信息

例如,让我们以这个亚马逊产品为例

我们可以使用

查看来源:

我的目标是获取一些数据,例如产品说明1366x768 LED显示屏

我基本上是完整的源代码,然后使用正则表达式来获得我需要的数据

我在做这样的事情:

import requests

    source = requests.get(someUrl)
    data = re.findall(r'<span class=\"a-list-item\">(.*?)<\/span><\/li>', source.content)

这应该会给我所有的产品描述,但我一直得到TypeError:不能在类似字节的对象上使用字符串模式


我不知道我的正则表达式是错误的还是源代码。内容没有给我源代码。正如诊断所解释的,正则表达式库需要的是字符串输入,而不是字节

要求非常明确:

。。。对于非文本请求,以字节形式访问响应正文:

>>> r.content
假设您检索了一些HTML文本 你会想解码它, 或者让图书馆为您解码:

>>> source.content.decode(source.encoding)

两个表达式都返回Unicode字符串, 这将是该正则表达式的完美输入


单独的项目:make,而不是Regex-这里,bs4是更合适的工具。

Regex通常不是解析HTML的合适工具。阅读关于Python的漂亮汤库,可以获得更好的选择。我认为,请明确说明您希望从页面中获得的信息,而不是每个产品的一般说明。。。例如,您是否希望整个比较表位于底部?
>>> source.text