python小项目一

作者: 三横一竖是我 | 来源:发表于2018-07-22 22:55 被阅读41次

    7-22

    爬虫猫眼top100电影

    参看内容:https://www.bilibili.com/video/av21857172/?p=14
    https://blog.csdn.net/yaoyefengchen/article/details/79025943
    1.查找单页内容
    2.正则表达式使用
    3.多线程抓取

    查找单页内容

    猫眼榜单→右键→检查

    左上角箭头符号,然后选中网页内容,就大概知道所要爬取的内容对应的位置

    import requests
    from requests.exceptions import RequestException
    
    def get_one_page(url):
        try:
            response = requests.get(url)
            if response.status_code == 200:
                return response.text
                return None
        except RequestException:
            return None
    
    def main():
        url = 'http://maoyan.com/board/4'
        html = get_one_page(url)
        print(html)
    
    if __name__ == '__main__':
        main()
    
    然后结果就有点小尴尬了 2.PNG

    稍作修改```
    def get_one_page(url):
    kv = {"user-agent": "Mizilla/5.0"}

    try:
        rep = requests.get(url, headers=kv)
        if rep.status_code == 200:
            return rep.text
    except RequestException:
        return None```运行成功
    

    然后这个就是我第六天的文章里处理请求头修改,一般来说简单的反爬就是检查user-agent
    其他的运行就都ok

    正则表达式的使用

    对比一下代码和要爬取的内容

    pattern = re.compile('<dd>.*?board-index.*?>(\d+)</i>.*?data-src="(.*?)".*?name">'
            + '<a.*?>(.*?)</a>.*?"star">(.*?)</p>.*?releasetime">(.*?)</p>'
            + '.*?integer">(.*?)</i>.*?fraction">(.*?)</i>.*?</dd>', re.S)
    
    <dd>
                            <i class="board-index board-index-10">10</i>
        <a href="/films/2760" title="魂断蓝桥" class="image-link" data-act="boarditem-click" data-val="{movieId:2760}">
          <img src="//ms0.meituan.net/mywww/image/loading_2.e3d934bf.png" alt="" class="poster-default" />
          <img data-src="http://p0.meituan.net/movie/46c29a8b8d8424bdda7715e6fd779c66235684.jpg@160w_220h_1e_1c" alt="魂断蓝桥" class="board-img" />
        </a>
        <div class="board-item-main">
          <div class="board-item-content">
                  <div class="movie-item-info">
            <p class="name"><a href="/films/2760" title="魂断蓝桥" data-act="boarditem-click" data-val="{movieId:2760}">魂断蓝桥</a></p>
            <p class="star">
                    主演:费雯·丽,罗伯特·泰勒,露塞尔·沃特森
            </p>
    <p class="releasetime">上映时间:1940-05-17(美国)</p>    </div>
        <div class="movie-item-number score-num">
    <p class="score"><i class="integer">9.</i><i class="fraction">2</i></p>  
    

    然后其实自己正则表达式也不太熟悉,要好好研究一下,把之前文章的链接找出来看看

    多线程抓取

    多线程抓取异步主要是为了加快抓取速度
    目前也不是很了解,就找些资料看看
    https://blog.csdn.net/cymy001/article/details/78218024
    https://blog.csdn.net/ztf312/article/details/78858512

    相关文章

      网友评论

        本文标题:python小项目一

        本文链接:https://www.haomeiwen.com/subject/vwklmftx.html