1.爬虫的基本流程:
通过requests库的get方法获得网站的url
浏览器打开网页源码分析元素节点
通过BeautifulSoup或者正则表达式提取想要的数据
储存数据到本地磁盘或者数据库
2.正式开工啦
url = “http://www.jianshu.com”
page = requests.get(url) #发现返回状态码403,说明有问题出现(除200外,其他的都是有问题的)
#这个时候查看一下爬虫的robots协议,的确有些问题,解决方案如下:
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
获取html页面
page = requests.get(url, headers = headers)
demo = page.text
#记住,有时候有可能出现编码问题
page.encoding = page.apparent_encoding
#将获取的内容转换为BeautifulSoup格式,并将html.parser作为解释器(熬一锅汤)
soup = BeautifulSoup(demo, 'html.parser')
#以格式化的形式打印html
print(soup.prettify()) #利于分析元素节点
#查找所有a标签中class=‘tilte’的语句
titles = soup.find_all('a', 'title')
#打印查找到的每一个标签的string和文章链接
for titile in titles:
print(title.string) #打印字符串
print("http://www.jianshu.com" + title.get('href')) #利用title的get方法获取连接,可通过dir(titles)查看可用的方法
#将获取的内容写入本地磁盘
with open('aa.txt', 'w') as f:
for title in titles:
f.write(title.string+'\n')
f.write('http://www.jianshu.com' + title.get('href') + '\n\n')
来源:oschina
链接:https://my.oschina.net/u/4346331/blog/3986819