Python 与此url匹配的正则表达式是什么?

Python 与此url匹配的正则表达式是什么?,python,regex,xpath,scrapy,Python,Regex,Xpath,Scrapy,我正在运行一个scrapy项目,我想从响应中提取该文本: >>> response.xpath('/html/body/table[2]/tr/td/table/tr[2]').extract() [u'<tr class="over"onclick="HM.set(\'bWFya2V0PT1nZW5lcmFsfHxzdD09MzB8fHN0cz09eyIxMCI6IlJlZ2lvbiIsIjIwIjoiTWlkZGxlIEVhc3QiLCIzMCI6IjRSVU5ORV

我正在运行一个scrapy项目,我想从响应中提取该文本:

>>> response.xpath('/html/body/table[2]/tr/td/table/tr[2]').extract()
[u'<tr class="over"onclick="HM.set(\'bWFya2V0PT1nZW5lcmFsfHxzdD09MzB8fHN0cz09eyIxMCI6IlJlZ2lvbiIsIjIwIjoiTWlkZGxlIEVhc3QiLCIzMCI6IjRSVU5ORVIgNjcxMzYwIn18fGNhdGFsb2c9PTY3MTM2MHx8cmVjPT1CMw%3D%3D\');">\n<td>671360</td>\n<td>4RUNNER</td>\n<td>11/1995-11/2002</td>\n<td>KZN185,RZN18#,VZN18#</td>\n</tr>']

可以使用以下表达式:

(?<=HM\.set\(')[^']+
这将是:

response.xpath('/html/body/table[2]/tr/td/table/tr[2]').re(r"HM\.set\('([^']+)'")

您的表达式,
[^HM.+D$]*
不起作用,因为
[^]
是一个否定字符类,这意味着除了
[HM.+D$]
之外的所有字符都将匹配(这不是您想要的)

或者,您可以始终检索
onclick
属性,然后从中解析值:

response.xpath('/html/body/table[2]/tr/td/table/tr[2]/@onclick').re(r"HM\.set\('([^']+)'")

可以使用以下表达式:

(?<=HM\.set\(')[^']+
这将是:

response.xpath('/html/body/table[2]/tr/td/table/tr[2]').re(r"HM\.set\('([^']+)'")

您的表达式,
[^HM.+D$]*
不起作用,因为
[^]
是一个否定字符类,这意味着除了
[HM.+D$]
之外的所有字符都将匹配(这不是您想要的)

或者,您可以始终检索
onclick
属性,然后从中解析值:

response.xpath('/html/body/table[2]/tr/td/table/tr[2]/@onclick').re(r"HM\.set\('([^']+)'")

您至少可以尝试获取
onclick
属性。另外,这似乎不是一个URL,只是一个字符串。您至少可以尝试获取
onclick
属性。另外,那似乎不是URL,只是一个字符串
>>>response.xpath('/html/body/table[2]/tr/td/table/tr[2]').re('(?
>>>response.xpath('/html/body/table[2]/tr/td/table/tr[2]')。re(“‌​(?@Hathout-这是一个转义问题…尝试使用原始字符串,在表达式…
response.xpath('/html/body/table[2]/tr/td/table/tr[2]')之前添加
r
‌​(?
>>response.xpath('/html/body/table[2]/tr/td/table/tr[2]')。re(r)‌​"‌​(?@Hathout-我下载了scrapy来调试它。我更新了我的答案;它对你有用吗?
>response.xpath('/html/body/table[2]/tr/td/table/tr[2]')。re('(?
>>response.xpath('/html/body/table[2]/tr/td/table/tr[2]')。re(“)‌​(?@Hathout-这是一个转义问题…尝试使用原始字符串,在表达式…
response.xpath('/html/body/table[2]/tr/td/table/tr[2]')之前添加
r
‌​(?
>>response.xpath('/html/body/table[2]/tr/td/table/tr[2]')。re(r)‌​"‌​(?@Hathout-我下载了scrapy来调试它。我更新了我的答案;它对你有用吗?