Python网络爬虫入门详解

1、爬虫基本操作,爬取网页信息

这边我是用自己的博客做示例

import requests

from bs4 import BeautifulSoup

url= "https://blog.csdn.net/qq_37504771"    #这个链接是在下的个人博客
headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36'
        }
'''获取网页内容'''

# 构造一个向服务器请求的对象    r是包含服务器资源的response返回对象     

r = requests.get(url, headers = headers)    #使用requests伪装成浏览器访问
print(r.text)                                                  #打印出网站的源码

'''获取响应内容'''
print("文本编码: ",r.encoding)
print("响应状态吗: ",r.status_code)
print("字符串方式响应体: \n",r.text)

'''提取数据'''
#使用BeautifulSoup解析
soup = BeautifulSoup(r.text,"lxml")                        #调用BeautifulSoup方法解析这个页面
title = soup.find("h4",class_="text-truncate").a.text.strip()  #soup解析找到第一篇文章的标题
print(title)   

'''存储数据'''
with open('title.txt','a+') as f:    #存储文件
    f.write(title)

    f.close()

静态网站抓取

下面我们用豆瓣电影网来举个例子

import requests
from bs4 import BeautifulSoup

def get_movies():
    #网站的请求头
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36',
        'Host':'movie.douban.com'   #这个就是网站地址
    }

    movie_list = []
    '''抓取10个电影'''
    for i in range(0,10):
        url = 'https://movie.douban.com/top250?start='+str(i*25)    #豆瓣上一个页面显示25个电影信息
        r = requests.get(url, headers = headers, timeout=10)   #获取响应
        print(str(i+1),"页响应状态码: ",r.status_code)

        soup = BeautifulSoup(r.text,"lxml")
        div_list = soup.find_all('div',class_='hd')        #调用soup找到所有的标题
        for each in div_list:
            movie = each.a.span.text.strip()               #获取每段代码的文本
            movie_list.append(movie)                       #添加到电影列表里面
    return movie_list

movies = get_movies()
print (movies)










猜你喜欢

转载自blog.csdn.net/qq_37504771/article/details/80761904