豆瓣小组爬虫

豆瓣小组上有很多小组里面的图片非常的好

所以我们给爬下来

if __name__=="__main__":
    url = raw_input('请输入小组字符串代码如:haixiuzu')
    beginPage = int(raw_input('请输入起始页码'))
    endPage= int(raw_input('请输入结束页码'))
    #构建url
    url = 'https://www.douban.com/group/'+url+'/discussion?start='
    #获取所有url
    getPageLink(url,beginPage,endPage)

先构建主页url

接着用xpath获取需要爬的帖子链接

def getPageLink(url,begin,end):
    """
    获取小组主页全部帖子链接
    :param url:
    :return:
    """
    #构建所有URL
    urlList = []
    #构建所有需要获取的链接
    for page in range(begin,end+1):
        pn = (page - 1) * 25
        urlList.append(str(url)+str(pn))
    #构建head
    headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'}
    #存放所有帖子链接
    linkList = []
    for i in urlList:
        Request =  urllib2.Request(i,headers=headers)
        html = urllib2.urlopen(Request).read()
        content=etree.HTML(html)
        #用xpath获取链接
        tempList=content.xpath('//td[@class="title"]/a/@href')
        for t in tempList:
            linkList.append(t)
    getImgLink(linkList)

接着获取所有图片的链接

def getImgLink(url):
    """
    获取帖子里所有图片的链接
    :param url:
    :return:
    """
    headers = {
        'Connection': 'keep-alive',
        'Upgrade-Insecure-Requests': '1',
        'Referer': 'https://www.douban.com/group/haixiuzu/discussion?start=0',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'
    }
    imgUrl = []
    for t in url:
        request = urllib2.Request(t,headers=headers)
        html = urllib2.urlopen(request).read()
        content = etree.HTML(html)
        #用xpath获取所有图片链接
        tempList = content.xpath('//div[@class="topic-content"]/div[@class="topic-figure cc"]/img/@src')
        for t in tempList:
            imgUrl.append(t)
    savaImg(imgUrl)

然后当然是保存所有图片了

def savaImg(imgList):
    """
    保存图片到本地
    :param imgList:
    :return:
    """
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'}
    #判断目录是否存在
    isExists = os.path.exists('img')
    #如果不存在创建
    if not isExists:
        os.makedirs('img')
    for t in imgList:
        request =  urllib2.Request(t,headers=headers)
        img = urllib2.urlopen(request).read()
        fileName = t[-10:]
        #写图片到指定目录
        with open('img\\'+fileName,"wb") as writ:
            writ.write(img)

以上仅供学习交流使用

转载于:https://www.cnblogs.com/ingxx/p/7747916.html

您好!是的,我可以帮助您进入豆瓣小组进行爬虫。首先,您需要安装Python的requests和BeautifulSoup库,用于发送HTTP请求和解析HTML页面。您可以使用以下命令来安装这些库: ``` pip install requests pip install beautifulsoup4 ``` 然后,您可以按照以下步骤进行豆瓣小组爬虫: 1. 导入所需的库: ```python import requests from bs4 import BeautifulSoup ``` 2. 发送HTTP请求并获取小组页面的HTML内容: ```python url = 'https://www.douban.com/group/your_group_id/' # 替换为您要爬取的小组URL response = requests.get(url) html_content = response.text ``` 3. 使用BeautifulSoup解析HTML页面: ```python soup = BeautifulSoup(html_content, 'html.parser') ``` 4. 根据页面结构提取所需信息,例如帖子标题、内容等: ```python # 获取帖子列表 post_list = soup.find_all('tr', class_='pl') for post in post_list: title = post.find('td', class_='title').a.text.strip() # 获取帖子标题 content = post.find('td', class_='title').a['href'] # 获取帖子链接 # 打印帖子标题和链接 print('标题:', title) print('链接:', content) print('---') ``` 这样就能获取到小组中的帖子标题和链接。您可以根据需求进一步解析帖子内容或其他信息。 请注意,爬取网页内容时需要遵守网站的使用规则,并尊重网站的爬虫限制。同时,豆瓣网站也有一些反爬虫机制,如果您频繁访问或过度请求,可能会导致您的IP被封禁。建议在进行爬虫之前先阅读豆瓣网站的相关规定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值