3.16-3.22

3.16
难点:爬虫还不是很熟悉,编码问题。

#亲子教育交流群

import requests
import random
import re
# url = 'https://www.douban.com/group/topic/151792674/' ##家长教育交流群
url = 'https://www.douban.com/group/topic/142200581/'  ##亲子关系交流群
# url = 'https://www.douban.com/group/topic/160407005/' ##教培行业信息交流群!
def getHtml(url):
    user_agents = [
            'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36',
            'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60',
            'Opera/8.0 (Windows NT 5.1; U; en)',
            'Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.50',
            'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.50',
            'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0',
            'Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10',
            'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2 ',
            'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36',
            'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
            'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16',
            'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36',
            'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko',
            'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.11 TaoBrowser/2.0 Safari/536.11',
            'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71 Safari/537.1 LBBROWSER',
            'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)',
            'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.84 Safari/535.11 SE 2.X MetaSr 1.0',
            'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SV1; QQDownload 732; .NET4.0C; .NET4.0E; SE 2.X MetaSr 1.0) ',
            "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
            "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)",
            "Mozilla/4.0 (compatible; MSIE 7.0; AOL 9.5; AOLBuild 4337.35; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
            "Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)",
            "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)",
            "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)",
            "Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)",
            "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)",
            "Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6",
            "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1",
            "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0",
            "Mozilla/5.0 (X11; Linux i686; U;) Gecko/20070322 Kazehakase/0.4.5",
            "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko Fedora/1.9.0.8-1.fc10 Kazehakase/0.5.6",
            "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11",
            "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.20 (KHTML, like Gecko) Chrome/19.0.1036.7 Safari/535.20",
            "Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; fr) Presto/2.9.168 Version/11.52"
        ]
    headers = {
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
        'Cookie': 'll="108296"; bid=l3iWZpKeDd0; __utmz=30149280.1584331685.1.1.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; __yadk_uid=NEOrYL9oL80ow4VepGIuEbgR5KRgWJvH; __gads=ID=cf960c0efdd18bf0:T=1584331700:S=ALNI_MZJfM-9cP73yudJiFBVijUVySG0Ag; douban-fav-remind=1; push_noty_num=0; push_doumail_num=0; __utmv=30149280.20868; ct=y; __utmc=30149280; _pk_ref.100001.8cb4=%5B%22%22%2C%22%22%2C1584358562%2C%22https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DE3AYV2R4DLu_URPvh2cdbkgEnPyvO-R8UI8KHvbTL2SIWNGzj4PvTK6IbTmgmpec%26wd%3D%26eqid%3Dc9ceef75000683f0000000045e6efba2%22%5D; _pk_ses.100001.8cb4=*; ap_v=0,6.0; __utma=30149280.811580738.1584331685.1584353655.1584358563.7; __utmt=1; _pk_id.100001.8cb4=3122a8cdd9d4b035.1584331685.7.1584358626.1584354708.; __utmb=30149280.14.9.1584358625965',
        'Referer': 'https://www.douban.com/group/200161/',
        'User-Agent': str(random.choice(user_agents)),
        'Connection': 'keep-alive'
    }
    #正则表达式
    pattern_name = r'<a href="https://www.douban.com/people/.*?/" class="">(.*?)</a>' #根据html代码找到评论人的昵称
    pattern_content = r'<p class=" reply-content">(.*?)</p>' #根据html代码找到评论信息
    html_response = requests.get(url, headers=headers)
    html_response.encoding = 'utf-8' #根据HTML页面找到编码方式(charset)
    try:
        if html_response.status_code==200:
            # with open('douban_name.txt', 'wb') as f:
            #     f.write(pattern_name.encode())
            print(111)
            result_name = re.findall(pattern_name,html_response.text) #正则查找评论者昵称
            result_content = re.findall(pattern_content,html_response.text) #正则查找评论内容
            # print(html_response.text)
            # print('*'*100)
            result = zip(result_name, result_content)
            for v in result:
                print(v)
            # print(result)
            #
            # print(result_name, result_content)
            # print(f'{result_name}:{result_content}')
    except Exception as e:
        print(e)

# def parseHtml(response):


getHtml(url)
posted @ 2020-03-16 20:11  Micheal_L  阅读(88)  评论(0编辑  收藏  举报