python 在爬取网页时遇到个奇怪的问题 ?请教一下 有点复杂
本帖最后由 hahawangzi 于 2020-4-29 11:05 编辑soup2 = BeautifulSoup(r2.text,"lxml")
down = soup2.find('div',class_="fed-arti-content fed-padding")
pan=re.compile('https://pan.baidu.com.*')
pan2=re.compile('.*提取码.*?')
for i in down.find_all('p'):
try:
print(re.findall(pan,i.find('a').get('href')))
print(re.findall(pan2,i.getText()))
except:
pass
try:
print(re.findall(pan,i.getText()))
#print(re.findall(pan2,i.getText()))
except:
pass
#if re.findall(pan2,str(i.getText())):
# print("".join(str(re.findall(pan2,str(i.getText()))).split())) 之前匹配出来后面有\xa0的空格符 怎么都去不掉
用正则表达式匹配不到的都会出现【】,,有没有办法不让他显示整个【】
整个网站有些地址是以超链接形式(‘href’)出现,有的直接是文本。。。。所以没办法提取所有,只能用正则来匹配
有办法去掉这个【】吗?
网址是这样的,他所有的下载地址都在P 里面的<a href>里面,但是有些是没有<a href>的直接 有一个文本。
然后遍历的时候 , 遍历到第一个i.find('a').get('href')因为是空的就报错,所以只能用try except 来或许到不是空值的 用if i.find('a').get('href') is not None
print(i.find('a').get('href')) 是不行的 加个判断,如果匹配到的数据为空则跳过。 网址发出来 看看~~ 还是需要原网址 在正则里面带上[]试试,然后为空就跳过 你内容都不全,提取码在什么位置都不知道 wanglaihuai 发表于 2020-4-29 10:08
加个判断,如果匹配到的数据为空则跳过。
我试过不行的 如果 if re.findall(pan,i.find('a').get('href')) is not None:
print(re.findall(pan,i.find('a').get('href')))
只能 用TRY except 给个地址,不想去敲里面的内容测试 你的python版本是不是比较老,感觉是遇到了编码decode incode的问题 Fate_XZ 发表于 2020-4-29 11:06
你的python版本是不是比较老,感觉是遇到了编码decode incode的问题
3.82的 不是很老的
页:
[1]
2