关于BeutifulSoup对象的find_all()中使用正则表达式的问题 5C

如图所示的网页HTML标签,现想用正则表达式将div class='dg000'或者div class='dgfff'的标签提取出来,而不包括class='dgfff banner-box'
图片说明
用如下语句提取实现不了,原因是什么呢?
datas=soup.find_all('div',{'class':'re.compile(''bg[f,0]{3}$)})


7个回答

你先弄清楚你爬取的是动态网页还是静态网页

soup.findAll("div", attrs={"class":re.compile(r'bg[f0]{3}$')})试试

先用if 判断has_key的结果,然后“class"要用“_class"才可以_

js动态的数据吧,或者是ajax异步请求的

/(

]*class="\s*bg(?:000|fff)\s*"[^>]*>[^<]*<\/div>)/gi
图片说明

你应该爬虫用的并不是很熟练吧?你可以看下我博客,里面虽然并不能解决你的问题,但应该可以让你知道哪些网页你暂时不好爬。 要爬动态网页需要付出一些学习时间,去了解全新知识。

到底是bg还是dg
另外,你要匹配000或者fff,而不是0f0或者00f,应该用bg000|bgfff

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问