首先是需要有一个request库,然后要把headers改成浏览器,不然默认的pyhton会被知乎给禁止,
new一个r来请求网页,吧原来的headers换位浏览器,
然后正则匹配标题,
至于re.compile()
从compile()函数的定义中,可以看出返回的是一个匹配对象,它单独使用就没有任何意义,需要和findall(), search(), match()搭配使用。
findall作用是以列表的形式返回字符串。
import requests
import re
headers = {
'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'
}
r = requests.get("https://www.zhihu.com/explore", headers=headers)
pattern = re.compile('explore-feed.*?question_link.*?>(.*>)</a>', re.S)
titles = re.findall(pattern, r.text)
print(titles)