python3爬虫 -----爬取百思不得姐信息-------http://www.budejie.com/

 1 # -*- coding:utf-8 -*-
 2 # author:zxy
 3 # Date:2018-10-21
 4
 5 import request
 6 from lxml import etree
 7 import threading
 8 from queue import Queue
 9 import csv
10 import requests
11
12 class Produce(threading.Thread):
13     headers = {
14         ‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 6.1; Win64; x64) ‘
15                       ‘AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36‘,
16         ‘Cookie‘: ‘__cfduid=ddb28ef1934faef742f7fb8911d7b33bd1540080067; UM_distinctid=16693ece9945b2-0b031da4b19f32-333b5602-1fa400-16693ece9958e4;‘
17                   ‘ _ga=GA1.2.1950184368.1540080070; _gid=GA1.2.1249143498.1540080070; _gat=1‘
18     }
19     def __init__(self,page_queue,joke_queue,*args,**kwargs):
20         super(Produce, self).__init__(*args,**kwargs)
21         self.base_domain="http://www.budejie.com"
22         self.page_queue = page_queue
23         self.joke_queue = joke_queue
24     def run(self):
25         while True:
26             if self.page_queue.empty():
27                 break
28             url=self.page_queue.get()
29             self.parse_url(url)
30
31     def parse_url(self,url):
32         reponse=requests.get(url,headers=self.headers)
33         text=reponse.text
34         html=etree.HTML(text)
35         descs=html.xpath("//div[@class=‘j-r-list-c-desc‘]")
36         for desc in descs:
37             jokes=desc.xpath(".//text()")
38             joke="\n".join(jokes).strip()
39             link=self.base_domain+desc.xpath(".//a/@href")[0]
40             self.joke_queue.put((joke,link))
41         print("="*30+"第%s页下载完成!"%url.split(‘/‘)[-1]+"="*30)
42
43
44 class Consumer(threading.Thread):
45     headers = {
46         ‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 6.1; Win64; x64) ‘
47                       ‘AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36‘,
48         ‘Cookie‘: ‘__cfduid=ddb28ef1934faef742f7fb8911d7b33bd1540080067; UM_distinctid=16693ece9945b2-0b031da4b19f32-333b5602-1fa400-16693ece9958e4;‘
49                   ‘ _ga=GA1.2.1950184368.1540080070; _gid=GA1.2.1249143498.1540080070; _gat=1‘
50     }
51     def __init__(self,joke_queue,write,gLock,*args,**kwargs):
52         super(Consumer, self).__init__(*args,**kwargs)
53         self.joke_queue=joke_queue
54         self.write=write
55         self.gLock=gLock
56
57     def run(self):
58         while True:
59             try:
60                 joke_info=self.joke_queue.get(timeout=40)
61                 joke,link=joke_info
62                 self.gLock.acquire()
63                 self.write.writerow((joke,link))
64                 self.gLock.release()
65             except:
66                 break
67
68
69 def main():
70     page_queue=Queue(100)
71     joke_queue=Queue(1000)
72     gLock=threading.Lock()
73     fp=open(‘baisibudejie.csv‘,‘a‘,newline=‘‘,encoding=‘utf-8‘)
74     writer=csv.writer(fp)
75     writer.writerow((‘content‘,‘link‘))
76
77     for x in range(1,11):
78         url="http://www.budejie.com/%d"%x
79         page_queue.put(url)
80
81     for x  in range(5):
82         t=Produce(page_queue,joke_queue)
83         t.start()
84
85     for x in range(3):
86         t=Consumer(joke_queue,writer,gLock)
87         t.start()
88
89
90 if __name__ == ‘__main__‘:
91     main()

原文地址:https://www.cnblogs.com/z-712/p/9824940.html

时间: 2024-11-07 09:43:17

python3爬虫 -----爬取百思不得姐信息-------http://www.budejie.com/的相关文章

python3 爬虫---爬取糗事百科

这次爬取的网站是糗事百科,网址是:http://www.qiushibaike.com/hot/page/1 分析网址,参数'page/'后面的数字'1'指的是页数,第二页就是'/page/2',以此类推... 一.分析网页 网页图片 然后明确要爬取的元素:作者名.内容.好笑数.以及评论数量 每一个段子的信息存放在'div id="content-left"'下的div中 爬取元素的所在位置 二.爬取部分 工具: Python3 requests xpath 1.获取每一个段子 1 #

Python3爬虫爬取淘宝商品数据

这次的主要的目的是从淘宝的搜索页面获取商品的信息.其实分析页面找到信息很容易,页面信息的存放都是以静态的方式直接嵌套的页面上的,很容易找到.主要困难是将信息从HTML源码中剥离出来,数据和网页源码结合的很紧密,剥离数据有一定的难度. 然后将获取的信息写入excel表格保存起来,这次只爬取了前面10页 的内容.在运行代码的过程中发现,30页后面的数据有问题,出现了手机价格为0的情况,这是不符合实际的,码也没有写错误处理的代码. 这次先写个粗略的,有点凌乱的感觉,下次有时间再系统的整理整理吧. im

利用python3爬虫爬取漫画岛-非人哉漫画

最近学了一点点python爬虫的知识,面向百度编程爬了一本小说之后感觉有点不满足,于是突发奇想尝试爬一本漫画下来看看. 一.效果展示 首先是我们想要爬取的漫画网页:  http://www.manhuadao.cn/   网页截图:     其次是爬取下来的效果: 每一回的文件夹里面是这样的:  (因为网站图片的问题...所以就成了这个鬼样子)  二.分析原理      1.准备:需要vscode或者其他能够编译运行python的软件,推荐python版本3.X ,否则有可能出现编译问题. 下载

python3爬虫爬取煎蛋网妹纸图片

其实之前实现过这个功能,是使用selenium模拟浏览器页面点击来完成的,但是效率实际上相对来说较低.本次以解密参数来完成爬取的过程. 首先打开煎蛋网http://jandan.net/ooxx,查看网页源代码.我们搜索其中一张图片的编号,比如3869006,看下在源代码中是否能找到图片链接 从上面的HTML结构中找到这个标号对应的一些属性,没有直接的图片链接地址,只有一个src=//img.jandan.net/blank.gif,这很明显不是个真实的链接地址,因为每一个图片编号都有这个值.我

python3爬虫 -----爬取斗图息-------www.doutula.com

普通爬取: 1 # -*- coding:utf-8 -*- 2 # author:zxy 3 # Date:2018-10-21 4 import requests 5 from lxml import etree 6 import re 7 import urllib 8 import os 9 import time 10 11 12 13 def parse_page(url): 14 headers={ 15 'User-Agent':'Mozilla/5.0 (Windows NT

python3 爬虫爬取深圳公租房轮候库(深圳房网)

深圳公租房轮候库已经朝着几十万人的规模前进了,这是截至16年10月之前的数据了,贴上来大家体会下 所以17年已更新妥妥的10W+ 今天就拿这个作为爬虫的练手项目 1.环境准备: 操作系统:win10 python版本:python3.5.3 开发工具:sublime 3 python需要安装的库: anaconda 没安装的可以去https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/这里下载,国内镜像比较快: Requests    urllib的

用JAVA制作一个爬取商品信息的爬虫(爬取大众点评)

很多企业要求利用爬虫去爬取商品信息,一般的开发模型如下: for i=1;i<=最大页号;i++ 列表页面url=商品列表页面url+?page=i(页号) 列表页面=爬取(列表页面url) 商品链接列表=抽取商品链接(列表页面)  for 链接 in 商品链接列表: 商品页面=爬取(链接) 抽取(商品页面); 这样的模型看似简单,但是有一下几个问题: 1)爬虫没有线程池支持. 2)没有断点机制. 3)没有爬取状态存储,爬取商品网站经常会出现服务器拒绝链接(反问次数过多),导致一旦出现 拒绝链接

Python编写网页爬虫爬取oj上的代码信息

OJ升级,代码可能会丢失. 所以要事先备份. 一开始傻傻的复制粘贴, 后来实在不能忍, 得益于大潇的启发和聪神的原始代码, 网页爬虫走起! 已经有段时间没看Python, 这次网页爬虫的原始代码是 python2.7版本, 试了一下修改到3.0版本, 要做很多包的更替,感觉比较烦,所以索性就在这个2.7版本上完善了. 首先观赏一下原始代码,我给加了一些注释: # -*- coding: cp936 -*- import urllib2 import urllib import re import

Python Scrapy的QQ音乐爬虫 音乐下载、爬取歌曲信息、歌词、精彩评论

QQ音乐爬虫(with scrapy)/QQ Music Spider 磁力搜索网站2020/01/07更新 https://www.cnblogs.com/cilisousuo/p/12099547.html UPDATE 2019.12.23 已实现对QQ音乐文件的下载,出于版权考虑,不对此部分代码进行公开.此项目仅作为学习交流使用,支持正版,人人有责 项目介绍 在写一个项目的时候需要用到一些音乐的信息,但是在网上找了许久也没找到满意的音乐语料,于是便用scrapy写了一个QQ音乐的爬虫 由