【发布时间】:2013-01-22 22:12:49
【问题描述】:
我对 python 和编程相当陌生 ;-),我正在编写一个程序来从网站上抓取数据,该网站只有 1 页有 6000 多行,而我将抓取大约 20000数以千计的。我正在使用 python 2.7.4
我看过一些关于如何使用正则表达式的教程,但它对我不起作用。 我正在使用 Beautiful Soup 来查找特定的标签,实际上我需要找到这样的标签:
<tr class="room_loop_counter1 maintr">
<tr class="room_loop_counter1 extendedRow">
<tr class="room_loop_counter2 maintr odd">
<tr class="room_loop_counter2 extendedRow odd">
<tr class="room_loop_counter3 maintr">
<tr data-occupancy="2" class="room_loop_counter1 ">
<tr data-occupancy="2" class="room_loop_counter2 odd">
<tr data-occupancy="3" class="room_loop_counter3 ">
<tr data-occupancy="3" class="room_loop_counter4 odd">
等等。我不确定 room_loop_counter1,3 之后引号前面的空格。
我正在尝试编写一个适合下一行代码的表达式:
soup = BeautifulSoup(html_part)
av = soup.find_all('tr', class_=REGULAR_EXP)
REGULAR_EXP = re.compile('"room_loop_counter"\d\s.')
但我显然为类写了错误的正则表达式
如何写一个有效的? 我想它应该是一个表达式,它找到所有“room_loop_counter”后跟任意数量的字符(数字、空格、字母,但不是换行符) 提前谢谢你。
【问题讨论】:
-
不要使用正则表达式解析 HTML,使用 DOM 库。
标签: html regex python-2.7 web-scraping beautifulsoup