import requests
import re
url='http://www.netbian.com/s/chuyinweilai/'
head={
'user_agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
}
page_data=requests.get(url,headers=head).text
pattern = re.compile(r'<a href="/desk.+?<img src="(.+?)"', flags=re.S)
img_list = pattern.findall(page_data)
img_list
str=r''
print(pattern.search(str))
当我用sublime text 3运行这段代码的时候,运行没有问题,也没有报错信息,但下面显示的却是“None”,也就是没有,这就很奇怪了,我手动打开那个网站的时候明明就有图片,为什么会说none呢?难道正则表达式错了吗?应该不会吧,正则错了应该会有报错的
麻烦大佬了
正则式没有问题,你没有用print(img_list)打印输出,后面的代码是对空值匹配,没有写对,1.加print,删去最后两行,2.把最后四行改成这样,两种改法都能输出正确结果:
pattern = re.compile(r'<a href="/desk.+?<img src="(.+?)"', flags=re.S)
img_list = re.findall(pattern,page_data)
print(img_list)
import requests
from lxml import etree
url='http://www.netbian.com/s/chuyinweilai/'
head={
'user_agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
}
page_data=requests.get(url,headers=head).text
html = etree.HTML(page_data)
img_list=html.xpath('//div[@class="list"]/ul/li/a/img/@src')
print(img_list)
用正则写爬虫是在难为人 用这个代码吧