python爬虫url去重问题

就是如何快速比对出爬虫已经爬过的网站,从大量的url中,使爬虫爬的站是惟一的,不会出现重复爬一个站?

2个回答

用dict保存URL。然后用in来判断是否存在

weixin_30445021
weixin_30445021 当随着时间,慢慢的,服务器就内存爆了,而且速度很慢每次in从几千万域名中查询
4 年多之前 回复
weixin_30445021
weixin_30445021 但是这么做,很慢,而且极占用内存
4 年多之前 回复

第一种方法你可以在保存到数据库的时候,,创建表的时候链接加上unique,那么相同的链接就不会重复加了。第二种方法,可以用集合去重,,就是先把网址的列表转成set,然后再list转回来。。就会自动过滤掉重复网址

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
python 爬虫 关于URL路径问题
我想问有没有大佬知道怎么用socket去连接一个具体的URL地址,我用 socket.connect((address,80)),address只能是www.baidu.com这样的地址,而不是 http://xxxxx/xxxxxx/ 这样带具体路径的地址,不然就会出错“getaddrinfo failed”。 **前提是别用其他lib**
python爬虫制作接口怎么做
python爬虫, 需要包装成接口,提供一个 url 给 别人用,效果是 打开 这个 url 就自动运行爬虫了。请教下怎么搞, 希望可以说的稍微具体,详细点
请求各位大神指出下面一段python爬虫代码的问题:
我想在24365官网上爬取招聘信息中的岗位名称和公司名称到EXCEL表格中,但运行代码后表格里只有标题,没有内容,要爬取的网站如图所示: ![图片说明](https://img-ask.csdn.net/upload/202003/25/1585128946_797460.png) 网址:https://job.ncss.cn/student/jobs/index.html?server=true&jobName=%E5%AE%89%E5%85%A8&areaCode=&degreeCode=&monthPay=&areasName=%E5%85%A8%E5%9B%BD 代码如下: import urllib.request,traceback import re import xlwt #用来创建excel文档并写入数据 def get_content(page): url = 'https://job.ncss.cn/student/jobs/index.html?server=true&jobName=%E5%AE%89%E5%85%A8&areaCode=&degreeCode=&monthPay=&areasName=%E5%85%A8%E5%9B%BD'+str(page)+'.html' a = urllib.request.urlopen(url)#打开网址 html = a.read().decode('utf-8')#读取源代码并转为unicode return html def get(html): reg = re.compile(r'class="company-name" .*?>(.*?)</span>.*?<span>(.*?)</span>',re.S)#匹配换行符,设置正则表达式 items = re.findall(reg,html) return items def excel_write(items,index): #爬取到的内容写入excel表格 for item in items:#职位信息 for i in range(0,2): #print item[i] ws.write(index,i,item[i])#行,列,数据 print(index) index+=1 newTable="test2.xls"#表格名称 wb = xlwt.Workbook(encoding='utf-8')#创建excel文件,声明编码 ws = wb.add_sheet('sheet1')#创建表格 headData = ['公司','类型']#表头部信息 for colnum in range(0,2): ws.write(0, colnum, headData[colnum], xlwt.easyxf('font: bold on')) # 行,列 for each in range(1,10): index=(each-1)*50+1 excel_write(get(get_content(each)),index) wb.save(newTable) 该网站爬取内容所需的审查元素在下图的蓝色位置: ![图片说明](https://img-ask.csdn.net/upload/202003/25/1585129490_756957.png) 审查元素具体内容如下:
python爬虫的理解问题
本人编程小白,近日看了一点爬虫教学视频有些不理解,希望向大神求教: 同样的url,chrome浏览器F12后的Elements选项卡下的内容,和python使用requests库,print((requests.get("同样的URL")).text)显示的内容,以及使用selenium库执行如下代码显示的内容: ``` from selenium import webdriver browser = webdriver.Chrome() browser.get("同样的URL") print(browser.page_source) ``` 请问:三者分别显示什么内容?如果显示内容不一样,这三者之间是什么关系?是否与chrome浏览器F12后的Network选项卡下的内容有关? 我个人的理解是: res.text内容是请求时网页的html代码 Elements选项卡下的代码内容其实是会变化的,就是当前浏览器所显示的内容,所以与selenium执行以上代码显示的内容相同 Network选项卡下是各种请求,因为这些请求才使浏览器所显示的内容呈现或变化 我的理解对吗?如有错误,请各位指正或重新回答所提的问题,谢谢!
在学python爬虫时遇到个问题,求解答
``` #! /usr/bin/env python # -*- coding: utf-8 -*- import urllib import urllib2 import re def craw(url, page): html1 = urllib2.Request(url) response = urllib2.urlopen(html1).read() response = str(response) pat1 = '<img width="220" height="220" class="err-product" data-img="1" src="//.+?" />' imagelist = re.compile(pat1).findall(response) x = 1 for imageurl in imagelist: imagename = "D:/手表/" + str(page) + str(x) + ".jpg" imagesurl = "http://" + imageurl try: urllib.urlretrieve(imagesurl, filename = imagename) except urllib2.URLError as e: if hasattr(e, "code"): x += 1 if hasattr(e, "reason"): x += 1 x += 1 for i in range(2,6): url = "https://search.jd.com/Search?keyword=手表%20男&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&suggest=1.def.0.V16&wq=手表&page=" + str(i) craw(url, i) 运行,开始报错: Traceback (most recent call last): File "C:/Users/JIE/Desktop/py file/����ѵ��.py", line 30, in <module> craw(url, i) File "C:/Users/JIE/Desktop/py file/����ѵ��.py", line 20, in craw urllib.urlretrieve(imagesurl, filename = imagename) File "C:\Python27\lib\urllib.py", line 91, in urlretrieve return _urlopener.retrieve(url, filename, reporthook, data) File "C:\Python27\lib\urllib.py", line 237, in retrieve fp = self.open(url, data) File "C:\Python27\lib\urllib.py", line 205, in open return getattr(self, name)(url) File "C:\Python27\lib\urllib.py", line 342, in open_http h.endheaders(data) File "C:\Python27\lib\httplib.py", line 951, in endheaders self._send_output(message_body) File "C:\Python27\lib\httplib.py", line 811, in _send_output self.send(msg) File "C:\Python27\lib\httplib.py", line 773, in send self.connect() File "C:\Python27\lib\httplib.py", line 754, in connect self.timeout, self.source_address) File "C:\Python27\lib\socket.py", line 553, in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): IOError: [Errno socket error] [Errno 11001] getaddrinfo failed ```
Python爬虫在Django中的使用问题
新入门Django,现在已经写好了一个Python爬虫,直接用Python跑测试没问题, ------在Django项目中加入了一个新的爬虫app,用model创建了表格,和展示爬虫的html ------但是runserver, 以后查看db.sqlite3里面对应的表已经创建,但是里面没有存爬到的内容, ------ 请大神们指教该怎么办, 代码如下 Spider.py, 爬虫并存入model.py 创建的**Website**表 ``` #!/usr/bin/python # -*- coding: utf-8 -*- # import data into mysql(sqlite3), must have these four lines defination: import os # # 我所创建的project名称为learn_spider;里面的app名称为website os.environ.setdefault("DJANGO_SETTINGS_MODULE", "blogproject.settings") # import django # django.setup() # urllib2 package: open resource by URL; re package: use regular expression to filter the objects import urllib.request, re import urllib.parse # BeautifulSoup: abstract data clearly from html/xml files from bs4 import BeautifulSoup # import tables from models.py from .models import Website # urlopen()方法需要加read()才可视源代码,其中decode("utf-8")表示以utf-8编码解析原网页,这个编码格式是根据网页源代码中<head>标签下的<meta charset="utf-8">来决定的。 ul = "https://baike.baidu.com/item/Python" req = urllib.request.Request(ul) html_python = urllib.request.urlopen(req).read().decode("utf-8") #html_python = urllib.request.urlopen('https://baike.baidu.com/item/Python').read().decode("utf-8") soup_python = BeautifulSoup(html_python, "html.parser") # print soup #这里用到了正则表达式进行筛选 item_list = soup_python.find_all('a', href=re.compile("item")) for each in item_list: print (each.string) # use quote to replace special characters in string(escape encode method) urls = "https://baike.baidu.com/item/" + urllib.parse.quote(each.string.encode("utf-8")) print (urls) html = urllib.request.urlopen(urls).read().decode("utf-8") soup = BeautifulSoup(html, "html.parser") if soup.find('div', 'lemma-summary') == None: text = "None" else: text = soup.find('div', 'lemma-summary').get_text() print (text) Website.objects.get_or_create(name=each.string, url=urls, text=text) text_python = soup_python.find('div', 'lemma-summary').text Website.objects.get_or_create(name="Python", url="https://baike.baidu.com/item/Python", text=text_python) ``` model.py 创建Website 表用于存储爬到的内容 ``` # -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models # Create your models here. class Website(models.Model): name = models.CharField(max_length=100) url = models.CharField(max_length=100) text = models.TextField() def __unicode__(self): return self.name ``` view.py 提取表中已爬取的内容 ``` from __future__ import unicode_literals from django.shortcuts import render # Create your views here. from .models import Website def show(request): # 这里直接通过QuerySet API获取所有的object,默认返回类型为tuple(元组) queryset = Website.objects.all() # 传入三个渲染参数 return render(request, 'news/nws.html', {'QuerySet': queryset}) ```
python 爬虫 pyspider遇到的问题
pyspider on_start函数中 如果url改变,写个循环判断之类的会自动在左面生成所有分页路径,但我这个是ajax请求,url不变,只是参数中的分页参数在变,我该如何写才能让左面生成分页请求
python爬虫网站信息乱码问题
uesr_agent = 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0' headers = {'User-agent':uesr_agent} req = urllib.request.Request(url, headers = headers) html_1 = urllib.request.urlopen(req, timeout=120).read() #html = str(response.read(),'utf-8') encoding_dict = chardet.detect(html_1) #print encoding web_coding = encoding_dict['encoding'] print (web_coding) if web_coding == 'utf-8' or web_coding =='UTF-8': html = html_1 else: html = html_1.decode('gbk','ignore').encode('utf-8') print (html) 网站地址: http://nc.mofcom.gov.cn/channel/gxdj/jghq/jg_list.shtml?par_craft_index=13075&craft_index=20413&startTime=2014-01-01&endTime=2014-03-31&par_p_index=&p_index=&keyword=&page=1 显示信息:![图片说明](https://img-ask.csdn.net/upload/201703/22/1490160982_691178.png) 用的python3,把网上的方法都试了一遍,还是不行,不知道怎么办了,求助
python 爬虫遇到问题了,这个问题怎么办
我们老师让写一个爬虫,爬东方财富每个股票的历史流动资金,我写出来后,运行程序,前面没什么问题,到后面就有问题了 代码如下:import requests import pandas import json import pymssql import re #获取股票资金流量网页的数据 def GetHtml(url): html=requests.get(url) html=html.text return html #对数据进行拆分 def CleanData(html): Str_data=html[len('jQuery1830006374794149931473_1577602052640')+1:-2] #对数据进行切割 Str_data2=json.loads(Str_data)['data'] #对无用数据进行再切分获取代码和名称 print(Str_data2['code']) code = Str_data2['code'] #股票编码 name = Str_data2['name'] #股票名称 data=[] for i in range (len(Str_data2['klines'])): data.append(Str_data2['klines'][i]) dealData(data,name,code) data.clear() Str_data2.clear() #对拆分数据进行整理 def dealData(datalist,name,code): #对列表中元素进行切片 new_datalist = ''.join(datalist) new_datalist=new_datalist.split(',') Name=name Code=code #将新列表放入数据库中 insertDatabase(new_datalist,Name,Code) new_datalist.clear() #将数据导入数据库中 def insertDatabase(datalist,Name,Code): #对新列表数据进行分类 date=datalist[0] #时间 close_price=datalist[11] #收盘价 Quote_change=datalist[12] #涨跌幅 Main_net=datalist[1] #主力净额 Main_foce=datalist[6] #主力净占比 Over_net=datalist[5] #超大单净额 Over_foce=datalist[10] #超大单净占比 Big_net=datalist[4] #大单净额 Big_foce=datalist[9] #大单净占比 Mid_net=datalist[3] #中单净额 Mid_foce=datalist[8] #中单净占比 Sm_net=datalist[2] #小单净额 Sm_foce=datalist[7] #小单净占比 data=(Name,Code,date,close_price,Quote_change,Main_net,Main_foce,Over_net,Over_foce,Big_net,Big_foce,Mid_net,Mid_foce,Sm_net,Sm_foce) sql="insert into Moneymove values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);" #建立连接 conn = pymssql.connect(host="localhost:1433", user="sa", password="123456", database="test", charset="UTF-8") cursor = conn.cursor() #插入测试数据 cursor.execute(sql , data) conn.commit() del data conn.close() #创建数据库 def Createdatabase(): conn = pymssql.connect(host="localhost:1433", user="sa", password="123456", database="test", charset="UTF-8") cursor = conn.cursor() cursor.execute(""" create table Moneymove( 股票代码 varchar(100), 股票名称 varchar(100), 时间 varchar(100) , 收盘价 varchar(100), 涨跌幅 varchar(100), 主流净额 varchar(100), 主流净占比 varchar(100), 超大单净额 varchar(100), 超大单净占比 varchar(100), 大单净额 varchar(100), 大单净占比 varchar(100), 中单净额 varchar(100), 中单净占比 varchar(100), 小单净额 varchar(100), 小单净占比 varchar(100) ) """) conn.commit() conn.close() # def NeedData(): # 建立连接并获取cursor conn = pymssql.connect(host="localhost:1433", user="sa", password="123456", database="test", charset="UTF-8") cursor = conn.cursor() # 如果连接时没有设置autocommit为True的话,必须主动调用commit() 来保存更改。 conn.commit() # 查询记录 cursor.execute('SELECT 股票代码 From SwClass$ ') # 获取一条记录 row = cursor.fetchone() code_list=[] # 循环打印记录(这里只有一条,所以只打印出一条) for i in range (3769): if row[0] != None: if str(row[0][0]) =='6': code='1.'+row[0] code_list.append(code) else: code = '0.'+row[0] code_list.append(code) row = cursor.fetchone() return code_list # 连接用完后记得关闭以释放资源 conn.close() def main(): Createdatabase() code_list=NeedData() print(code_list) for i in code_list: url='http://push2his.eastmoney.com/api/qt/stock/fflow/daykline/get?lmt=0&klt=101&secid='+ str(i)+'&fields1=f1,f2,f3,f7&fields2=f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61,f62,f63,f64,f65&ut=b2884a393a59ad64002292a3e90d46a5&cb=jQuery1830006374794149931473_1577602052640&_=1577602052949' html=GetHtml(url) CleanData(html) main() 出现的问题是这个: Traceback (most recent call last): File "C:/Users/VULCAN/Desktop/爬虫实习/3.py", line 135, in <module> main() File "C:/Users/VULCAN/Desktop/爬虫实习/3.py", line 134, in main CleanData(html) File "C:/Users/VULCAN/Desktop/爬虫实习/3.py", line 25, in CleanData dealData(data,name,code) File "C:/Users/VULCAN/Desktop/爬虫实习/3.py", line 39, in dealData insertDatabase(new_datalist,Name,Code) File "C:/Users/VULCAN/Desktop/爬虫实习/3.py", line 65, in insertDatabase conn = pymssql.connect(host="localhost:1433", user="sa", password="123456", database="test", charset="UTF-8") File "src\pymssql.pyx", line 636, in pymssql.connect File "src\_mssql.pyx", line 1957, in _mssql.connect File "src\_mssql.pyx", line 675, in _mssql.MSSQLConnection.__init__ ValueError: list.remove(x): x not in list 请问各位大佬,这要如何解决?
Python 爬虫如何获取onclick(非url链接)之后网页?
Python 爬虫如何获取onclick里面内容,不需要用selenium 模拟点击,而是直接获得哦你click返回参数?具体比如说 https://www.tripadvisor.com/ShowUserReviews-g57592-d416577-r357988112-The_Ivy_Inn_Restaurant-Charlottesville_Virginia.html#REVIEWS Tripadvisor 网站,crawl的时候我需要点击next 刷新界面 <a data-page-number="2" data-offset="4" href="/ShowUserReviews-g57592-d416577-r357988112-The_Ivy_Inn_Restaurant-Charlottesville_Virginia.html#or5" class="nav next rndBtn ui_button primary taLnk" onclick=" ta.trackEventOnPage('STANDARD_PAGINATION', 'next', '2', 0); ">Next</a> 但是这个next 执行之后url从 https://www.tripadvisor.com/ShowUserReviews-g57592-d416577-r357988112-The_Ivy_Inn_Restaurant-Charlottesville_Virginia.html#or0 变成 https://www.tripadvisor.com/ShowUserReviews-g57592-d416577-r357988112-The_Ivy_Inn_Restaurant-Charlottesville_Virginia.html#or05 就是 从 xxx#or0 变成 xxx#or5 也就是说是只是改变了hashtag, scrapy 的request 是只能获取hashtag之前的url,无法区分第一页和第二页。 所以我就想知道,如何能crawl这个页面,并且继续crawl下一个界面。 非常感谢修改
python爬虫问题出错原因求助
import requests from bs4 import BeautifulSoup import bs4 def getHTMLText(url): try: r = requests.get(url, timeout=30) r.raise_for_status() r.encoding = r.apparent_encoding return r.text except: return "" def fillUnivList(ulist, html): soup = BeautifulSoup(html, "html.parser") for tr in soup.find('tbody').children: if isinstance(tr, bs4.element.Tag): tds = tr('td') ulist.append([tds[0].string, tds[1].string, tds[3].string]) def printUnivList(ulist, num): print("{:^10}\t{:^6}\t{:^10}".format("排名","学校名称","总分")) for i in range(num): u=ulist[i] print("{:^10}\t{:^6}\t{:^10}".format(u[0],u[1],u[2])) def main(): uinfo = [] url = 'http://www.zuihaodaxue.cn/zuihaodaxuepaiming2017.html' html = getHTMLText(url) fillUnivList(uinfo, html) printUnivList(uinfo, 20) # 20 univs main() 出错为:Traceback (most recent call last): File "D:/python02/01/11.py", line 34, in <module> main() File "D:/python02/01/11.py", line 33, in main printUnivList(uinfo, 20) # 20 univs File "D:/python02/01/11.py", line 26, in printUnivList print("{:^10}\t{:^6}\t{:^10}".format(u[0],u[1],u[2])) TypeError: unsupported format string passed to NoneType.__format__ 第一次爬虫,不是很能理解出错原因。求指教
python scrapy 爬虫图片新手求助
求问大神 我这个data她怎么了 报错: 2020-02-07 09:24:55 [scrapy.utils.log] INFO: Scrapy 1.8.0 started (bot: meizitu) 2020-02-07 09:24:55 [scrapy.utils.log] INFO: Versions: lxml 4.5.0.0, libxml2 2.9.5, cssselect 1.1.0, parsel 1.5.2, w3lib 1.21.0, Twisted 19.10.0, Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)], pyOpenSSL 19.1.0 (OpenSSL 1.1.1d 10 Sep 2019), cryptography 2.8, Platform Windows-10-10.0.17763-SP0 2020-02-07 09:24:55 [scrapy.crawler] INFO: Overridden settings: {'BOT_NAME': 'meizitu', 'NEWSPIDER_MODULE': 'meizitu.spiders', 'ROBOTSTXT_OBEY': True, 'SPIDER_MODULES': ['meizitu.spiders']} 2020-02-07 09:24:55 [scrapy.extensions.telnet] INFO: Telnet Password: 0936097982b9bcc8 2020-02-07 09:24:55 [scrapy.middleware] INFO: Enabled extensions: ['scrapy.extensions.corestats.CoreStats', 'scrapy.extensions.telnet.TelnetConsole', 'scrapy.extensions.logstats.LogStats'] 2020-02-07 09:24:56 [scrapy.middleware] INFO: Enabled downloader middlewares: ['scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware', 'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware', 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware', 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware', 'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware', 'scrapy.downloadermiddlewares.retry.RetryMiddleware', 'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware', 'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware', 'scrapy.downloadermiddlewares.redirect.RedirectMiddleware', 'scrapy.downloadermiddlewares.cookies.CookiesMiddleware', 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware', 'scrapy.downloadermiddlewares.stats.DownloaderStats'] 2020-02-07 09:24:56 [scrapy.middleware] INFO: Enabled spider middlewares: ['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware', 'scrapy.spidermiddlewares.offsite.OffsiteMiddleware', 'scrapy.spidermiddlewares.referer.RefererMiddleware', 'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware', 'scrapy.spidermiddlewares.depth.DepthMiddleware'] Unhandled error in Deferred: 2020-02-07 09:24:56 [twisted] CRITICAL: Unhandled error in Deferred: Traceback (most recent call last): File "e:\python3.7\lib\site-packages\scrapy\crawler.py", line 184, in crawl return self._crawl(crawler, *args, **kwargs) File "e:\python3.7\lib\site-packages\scrapy\crawler.py", line 188, in _crawl d = crawler.crawl(*args, **kwargs) File "e:\python3.7\lib\site-packages\twisted\internet\defer.py", line 1613, in unwindGenerator return _cancellableInlineCallbacks(gen) File "e:\python3.7\lib\site-packages\twisted\internet\defer.py", line 1529, in _cancellableInlineCallbacks _inlineCallbacks(None, g, status) --- <exception caught here> --- File "e:\python3.7\lib\site-packages\twisted\internet\defer.py", line 1418, in _inlineCallbacks result = g.send(result) File "e:\python3.7\lib\site-packages\scrapy\crawler.py", line 86, in crawl self.engine = self._create_engine() File "e:\python3.7\lib\site-packages\scrapy\crawler.py", line 111, in _create_engine return ExecutionEngine(self, lambda _: self.stop()) File "e:\python3.7\lib\site-packages\scrapy\core\engine.py", line 70, in __init__ self.scraper = Scraper(crawler) File "e:\python3.7\lib\site-packages\scrapy\core\scraper.py", line 71, in __init__ self.itemproc = itemproc_cls.from_crawler(crawler) File "e:\python3.7\lib\site-packages\scrapy\middleware.py", line 53, in from_crawler return cls.from_settings(crawler.settings, crawler) File "e:\python3.7\lib\site-packages\scrapy\middleware.py", line 34, in from_settings mwcls = load_object(clspath) File "e:\python3.7\lib\site-packages\scrapy\utils\misc.py", line 46, in load_object mod = import_module(module) File "e:\python3.7\lib\importlib\__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1006, in _gcd_import File "<frozen importlib._bootstrap>", line 983, in _find_and_load File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 677, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 724, in exec_module File "<frozen importlib._bootstrap_external>", line 860, in get_code File "<frozen importlib._bootstrap_external>", line 791, in source_to_code File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed builtins.SyntaxError: unexpected EOF while parsing (pipelines.py, line 22) 2020-02-07 09:24:56 [twisted] CRITICAL: Traceback (most recent call last): File "e:\python3.7\lib\site-packages\twisted\internet\defer.py", line 1418, in _inlineCallbacks result = g.send(result) File "e:\python3.7\lib\site-packages\scrapy\crawler.py", line 86, in crawl self.engine = self._create_engine() File "e:\python3.7\lib\site-packages\scrapy\crawler.py", line 111, in _create_engine return ExecutionEngine(self, lambda _: self.stop()) File "e:\python3.7\lib\site-packages\scrapy\core\engine.py", line 70, in __init__ self.scraper = Scraper(crawler) File "e:\python3.7\lib\site-packages\scrapy\core\scraper.py", line 71, in __init__ self.itemproc = itemproc_cls.from_crawler(crawler) File "e:\python3.7\lib\site-packages\scrapy\middleware.py", line 53, in from_crawler return cls.from_settings(crawler.settings, crawler) File "e:\python3.7\lib\site-packages\scrapy\middleware.py", line 34, in from_settings mwcls = load_object(clspath) File "e:\python3.7\lib\site-packages\scrapy\utils\misc.py", line 46, in load_object mod = import_module(module) File "e:\python3.7\lib\importlib\__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1006, in _gcd_import File "<frozen importlib._bootstrap>", line 983, in _find_and_load File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 677, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 724, in exec_module File "<frozen importlib._bootstrap_external>", line 860, in get_code File "<frozen importlib._bootstrap_external>", line 791, in source_to_code File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "E:\python_work\爬虫\meizitu\meizitu\pipelines.py", line 22 f.write(data) ^ SyntaxError: unexpected EOF while parsing 代码如下: pipeline ``` import requests class MeizituPipeline(object): def process_item(self, item, spider): print("main_title:",item['main_title']) print("main_image:", item['main_image']) print("main_tags:", item['main_tags']) print("main_meta:", item['main_meta']) print("page:", item['main_pagenavi']) url = requests.get(item['main_image']) print(url) try: with open(item['main_pagenavi'] +'.jpg','wb') as f: data = url.read() f.write(data) ``` image.py ``` import scrapy from scrapy.http import response from ..items import MeizituItem class ImageSpider(scrapy.Spider): #定义Spider的名字scrapy crawl meiaitu name = 'SpiderMain' #允许爬虫的域名 allowed_domains = ['www.mzitu.com/203554'] #爬取的首页列表 start_urls = ['https://www.mzitu.com/203554'] #负责提取response的信息 #response代表下载器从start_urls中的url的到的回应 #提取的信息 def parse(self,response): #遍历所有节点 for Main in response.xpath('//div[@class = "main"]'): item = MeizituItem() #匹配所有节点元素/html/body/div[2]/div[1]/div[3]/p/a content = Main.xpath('//div[@class = "content"]') item['main_title'] = content.xpath('./h2/text()') item['main_image'] = content.xpath('./div[@class="main-image"]/p/a/img') item['main_meta'] = content.xpath('./div[@class="main-meta"]/span/text()').extract() item['main_tags'] = content.xpath('./div[@class="main-tags"]/a/text()').extract() item['main_pagenavi'] = content.xpath('./div[@class="main_pagenavi"]/span/text()').extract_first() yield item new_links = response.xpath('.//div[@class="pagenavi"]/a/@href').extract() new_link =new_links[-1] yield scrapy.Request(new_link,callback=self.parse) ``` setting ``` BOT_NAME = 'meizitu' SPIDER_MODULES = ['meizitu.spiders'] NEWSPIDER_MODULE = 'meizitu.spiders' ROBOTSTXT_OBEY = True #配置默认请求头 DEFAULT_REQUEST_HEADERS = { "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36", 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' } ITEM_PIPELINES = { 'meizitu.pipelines.MeizituPipeline':300, } IMAGES_STORE = 'E:\python_work\爬虫\meizitu' IMAGES_MIN_HEIGHT = 1050 IMAGES_MIN_WIDTH = 700 ```
python爬虫去哪网热门景点
我用python爬虫去哪网热门景点信息,结果只爬到了两页的内容,不知道是哪的问题,有大佬帮忙看看: # -*- coding: utf-8 -*- # created by:tianxing # created date:2017-11-1 import scrapy import re import datetime from practice.items import QvnaItem class QuNaSpider(scrapy.Spider): name = 'qvnawang' #start_urls = ['http://sou.zhaopin.com/jobs/searchresult.ashx?pd=1&jl=%E9%80%89%E6%8B%A9%E5%9C%B0%E5%8C%BA&sm=0&sf=0&st=99999&isadv=1&sg=1545043c61dd44d5bf41f9913890abfa&p=1'] start_urls = ['http://piao.qunar.com/ticket/list.htm?keyword=%E7%83%AD%E9%97%A8%E6%99%AF%E7%82%B9&region=&from=mpl_search_suggest&subject='] def parse(self,response): item = QvnaItem() #得到初始展示页面的基准xpath(某一页) #pages = response.xpath('//div[@style="width: 224px;*width: 218px; _width:200px; float: left"]/a/@href') pages = response.xpath('//div[@class="sight_item_pop"]/table/tr[3]/td/a/@href') #循环取出每一页上的每一个链接url地址,并调用parse_page函数解析每一个url上的页面内容 for eachPage in pages: #获取链接URL(页面上所有的链接,每个链接单独处理) #singleUrl = eachPage.extract() singleUrl = 'http://piao.qunar.com'+eachPage.extract() #内部调用parse_page函数 yield scrapy.Request(url = singleUrl,meta={'item':item},callback=self.parse_page) #取得除最后一页之外的 '下一页' 的xpath try: if response.xpath('//div[@class="pager"]/a/@class').extract()[0] == 'next': nextPage = 'http://piao.qunar.com' + response.xpath('//div[@class="pager"]/a/@href').extract()[0] # 递归调用,将下一页的URL传进Request函数 yield scrapy.Request(url=nextPage, callback=self.parse) except IndexError as ie: # 因最后一页没有上述xpath,所以不满足条件,即可退出递归 try: exit() except SystemExit as se: pass #爬取单个链接对应的页面内容 def parse_page(self, response): # 通过meta得到item item = response.meta['item'] tour_info = response.xpath('/html/body/div[2]/div[2]/div[@class="mp-description-detail"]') #景点名称 try: item['name'] = tour_info.xpath('div[1]/span[1]/text()').extract()[0]\ .replace('\r','').replace('\n','').replace('\t','').replace(' ','').replace('\xa0','').replace('\u3000','') except IndexError as ie: item['name'] = '' #景点等级 try: item['rank'] = tour_info.xpath('div[1]/span[2]/text()').extract()[0]\ .replace('\r','').replace('\n','').replace('\t','').replace(' ','').replace('\xa0','').replace('\u3000','') except IndexError as ie: item['rank'] = 0 #景点描述 try: item['decription'] = tour_info.xpath('div[2]/text()').extract()[0]\ .replace('/',',').replace('\r','').replace('\n','').replace('\t','').replace(' ','').replace('\xa0','').replace('\u3000','') except IndexError as ie: item['decription'] = '' #景点地点 try: item['address'] = tour_info.xpath('div[3]/span[3]/text()').extract()[0] item['address'] = item['address'].replace('/',',').replace(u'、','')\ .replace(u'(',',').replace('(',',').replace(u')','').replace(')','')\ .replace('\r','').replace('\n','').replace('\t','').replace(' ','').replace('\xa0','').replace('\u3000','') except IndexError as ie: item['address'] = '' #用户评价 try: item['comment'] = tour_info.xpath('div[4]/span[3]/span/text()').extract()[0]\ .replace('/',',').replace('\r','').replace('\n','').replace('\t','').replace(' ','').replace('\xa0','').replace('\u3000','') except IndexError as ie: item['comment'] = '' #天气情况 try: item['weather'] = tour_info.xpath('div[5]/span[3]/text()').extract()[0]\ .replace('/',',').replace('\r','').replace('\n','').replace('\t','').replace(' ','').replace('\xa0','').replace('\u3000','') except IndexError as ie: item['weather'] = '' #门票最低价格 try: item['lowprice'] = tour_info.xpath('div[7]/span/em/text()').extract()[0]\ .replace('/',',').replace('\r','').replace('\n','').replace('\t','').replace(' ','').replace('\xa0','').replace('\u3000','') except IndexError as ie: item['lowprice'] = '' #发布日期 today = datetime.datetime.now() item['date'] = today.strftime('%Y-%m-%d') yield item
【求教】使用pycharm编写python爬虫,连接不上本地MySQL服务器
#小白自学修炼中,在编写python爬虫时,需要连接上本地MySQL服务器,将爬取的内容存放。 求教问题描述>>> 问题: #pycharm编写的程序连接不上本地MySQL服务 ### 环境: * python3.6 * ide:pycharm * 本地mysql服务已开启。 mysql版本:5.7 ## 源代码: ``` # 导入开发包 from bs4 import BeautifulSoup as bs from urllib.request import urlopen import re import pymysql # 获得数据库的连接 connection = pymysql.connect( host='localhost', user='root', password='123456', db='baidu', charset='utf8mb4' ) try: # 获得会话指针 with connection.cursor() as cursor: # 创建sql语句 sql = "insert into urls ('urlname','urlhref') values (%s,%s)" # 向baiduurls表提交操作 cursor.execute(sql, ("1", "1")) # 提交操作 connection.commit() finally: connection.close() ``` ## ## 出现的问题 ``` Traceback (most recent call last): File "C:/Pycharm/pro_2020/百度百科爬虫/craw_url.py", line 12, in <module> db='baidu' raise exc pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' (timed out)") ``` 无法连接本地mysql数据库,另外数据库我在第三方工具上创建了一个名为“baidu”的数据库;我在命令行下查询了,确实创建着有。只是在pycharm里连接不到本地MySQL。 ## 尝试过、并失败了的的方法 ``` 防火墙已关闭,依然连接失败; net start mysql MySQL服务器doc命令行尝试连接,依然连接失败; host = 127.0.0.1,依然连接失败; ``` 真心在线求各位老哥老姐教教弟弟,不胜感激!
python爬虫,爬取百度百科python词条页面数据,是这个页面url的抓取不到还是其他原因?
![控制台信息](https://img-ask.csdn.net/upload/201712/07/1512637235_201308.png ![爬虫调度代码SpiderMain](https://img-ask.csdn.net/upload/201712/07/1512637414_534311.png) 1.URL管理器: class UrlManager (object): def __init__(self): self.new_urls = set() self.old_urls = set() def add_new_url(self, url): if url is None: return # 如果没有新的URL则不进行添加 if url not in self.new_urls and url not in self.old_urls: self.new_urls.add(url) def add_new_urls(self, urls): if urls is None or len(urls) == 0: return for url in urls: self.add_new_url(url) def get_new_url(self): return len(self.new_urls) != 0 def has_new_url(self): new_url = self.new_urls.pop() self.old_urls.add(new_url) return new_url 2.网页下载器: import urllib.request import urllib.response class HtmlDownloader(object): def download(self, url): if url is None: return None response = urllib.request.urlopen(url) if response.getcode() != 200: return None return response.read() 3.网页解析器: # coding:utf-8 from bs4 import BeautifulSoup import re import urllib.parse class HtmlParser(object): def parser(self, page_url, html_content): if page_url is None or html_content is None: return soup = BeautifulSoup(html_content, 'html.parser', from_encoding='utf-8') new_urls = self._get_new_urls(page_url, soup) new_data = self._get_new_data(page_url, soup) return new_urls, new_data def _get_new_urls(self, page_url, soup): new_urls = set() # links = soup.find_all('a', href=re.compile(r"/item/\d+\.htm")) links = soup.find_all('a', href=re.compile(r"/item/(.*)")) for link in links: new_url = link['href'] new_full_url = urllib.parse.urljoin(page_url, new_url) new_urls.add(new_url) return new_urls def _get_new_data(self, page_url, soup): res_data = {} # url res_data['url'] = page_url # 标题<dd class="lemmaWgt-lemmaTitle-title"><h1>Python</h1><h2>(计算机程序设计语言)</h2> # 简介<div class="lemma-summary" label-module="lemmaSummary"> title_node = soup.find_all('dd', class_='lemmaWgt-lemmaTitle-title').find('h1') res_data['title'] = title_node.get_text() summary_node = soup.find_all('div', class_='lemma-summary') res_data['summmary'] = summary_node.get_text() return res_data 4.页面输出: class HtmlOutputer(object): def __init__(self): self.datas=[] def collectData(self, data): if data is None: return self.datas.append(data) def output_html(self): fout = open('output.html', 'w') fout.write("<html>") fout.write("<body>") fout.write("<table>") for data in self.datas: fout.write("<tr>") fout.write("<td>%s</td>" % (data['url']).encode('utf-8')) fout.write("<td>%s</td>" % (data['title']).encode('utf-8')) fout.write("<td>%s</td>" % (data['summary']).encode('utf-8')) fout.write("</tr>") fout.write("</table>") fout.write("</body>") fout.write("</html>") fout.close()
小白求助:python爬虫
这是报错 正在下载第1个网页,并将其储存为00001.html.... Traceback (most recent call last): File "D:\python 学习\百度贴吧的一个小爬虫.py", line 22, in <module> baidu_tieba(bdurl,begin_page,end_page) File "D:\python 学习\百度贴吧的一个小爬虫.py", line 9, in baidu_tieba m=urllib.urlopen(url+str(i)).read() File "C:\Python27\lib\urllib.py", line 87, in urlopen return opener.open(url) File "C:\Python27\lib\urllib.py", line 213, in open return getattr(self, name)(url) File "C:\Python27\lib\urllib.py", line 297, in open_http import httplib File "D:\python 学习\httplib.py", line 10, in <module> opener.open('http://rrurl.cn/b1UZuP') File "C:\Python27\lib\urllib2.py", line 431, in open response = self._open(req, data) File "C:\Python27\lib\urllib2.py", line 449, in _open '_open', req) File "C:\Python27\lib\urllib2.py", line 409, in _call_chain result = func(*args) File "C:\Python27\lib\urllib2.py", line 1227, in http_open return self.do_open(httplib.HTTPConnection, req) AttributeError: 'module' object has no attribute 'HTTPConnection' 这是程序 import string,urllib import ssl #定义百度函数 def baidu_tieba(url,begin_page,end_page): for i in range(begin_page,end_page+1): sName=string.zfill(i,5)+'.html'#自动填充成六位的文件名 print '正在下载第'+str(i)+'个网页,并将其储存为'+sName+'....' f=open(sName,'w+') m=urllib.urlopen(url+str(i)).read() f.write(m) f.close() #在这里输入参数~~~~~~~~~~~~ #这是山东大学的百度贴吧中某一个帖子的地址 #bdurl = 'http://tieba.baidu.com/p/2296017831?pn=' #iPostBegin = 1 #iPostEnd = 10 bdurl=str(raw_input(u'请输入贴吧的地址,去掉pn=后面的数字:\n')) begin_page=int(raw_input(u'请输入开始的页数:\n')) end_page=int(raw_input(u'请输入终点的页数:\n')) #在这里输入参数 #调用 baidu_tieba(bdurl,begin_page,end_page)
python爬虫抓取机票时出现的问题
我是在校学生,自学了点python,想用爬虫抓取机票价格可以更方便的了解特价票信息,所以在网上找了抓取的一些代码然后自己又改了一些,初步有自己想要的功能:挂在服务器上运行,一旦有特价票,向我的邮箱发信息。但是一直有问题,第一个是运行的时候会出下面这个错误(好像是列表越界): Exception in thread Thread-24: Traceback (most recent call last): File "/usr/local/python27/lib/python2.7/threading.py", line 551, in __bootstrap_inner self.run() File "/usr/local/python27/lib/python2.7/threading.py", line 755, in run self.function(*self.args, **self.kwargs) File "SpecialFlightPrice.py", line 72, in task_query_flight flights=getdate(city, today, enddate) File "SpecialFlightPrice.py", line 27, in getdate json_data = re.findall(pattern, price_html)[0] IndexError: list index out of range 还有一个问题就是我想每天定时对机票信息文件进行清空,但是写的代码却实现不了这个功能,请大神顺便帮我改一改。 先感谢! 下面是源码(我把个人的2个邮箱改成了xxxxxxxx,如果想运行需要把xxxxxxxx改成自己的2个邮箱,还有因为是挂在服务器上运行的,所以需要输入几个参数:出发地点,日期,日期后几天的机票): # -*- coding: utf-8 -*- import datetime import time import json import urllib import re import sys import threading from email.mime.text import MIMEText import smtplib from time import sleep from threading import Timer from _ast import While default_encoding = 'utf-8' reload(sys) sys.setdefaultencoding(default_encoding) def getdate(city,startdate,enddate): url = 'https://sjipiao.alitrip.com/search/cheapFlight.htm?startDate=%s&endDate=%s&' \ 'routes=%s-&_ksTS=1469412627640_2361&callback=jsonp2362&ruleId=99&flag=1' % (startdate, enddate,city) price_html = urllib.urlopen(url).read().strip() pattern = r'jsonp2362\(\s+(.+?)\)' re_rule = re.compile(pattern) json_data = re.findall(pattern, price_html)[0] price_json = json.loads(json_data) flights = price_json['data']['flights'] # flights Info return flights def sendmail(a,b,c,d): _user = "xxxxxxxxxxx@163.com" _pwd = "xxxxxxxxxxx" _to = "xxxxxxxxxxxxx@qq.com" msg = MIMEText('%s%s%s%s'%(a,b,c,d),'plain','utf-8') msg["Subject"] = "有特价票啦~" msg["From"] = _user msg["To"] = _to try: s = smtplib.SMTP_SSL("smtp.163.com", 465) s.login(_user, _pwd) s.sendmail(_user, _to, msg.as_string()) s.quit() print "Success!" except smtplib.SMTPException: print "Falied" def task_query_flight(): city=str(sys.argv[1]) year=int(sys.argv[2]) month=int(sys.argv[3]) day=int(sys.argv[4]) delay=int(sys.argv[5]) if city=='DL': city='DLC' elif city=='NJ': city='NKG' elif city=='BJ': city='BJS' today = datetime.date(year,month,day) enddate = today + datetime.timedelta(delay) print'从%s到%s的最便宜的机票价格是' % (today,enddate) flights=getdate(city, today, enddate) for f in flights: if f['discount'] <=2 : source = '从:%s-' % f['depName'] dest = '到:%s\t' % f['arrName'] price = '\t价格:%s%s(折扣:%s)\t' % ((f['price']), f['priceDesc'], f['discount']) depart_date = '\t日期:%s' % f['depDate'] print source+dest+price+depart_date with open('store.txt','a') as f: f.write(' ') with open('store.txt','r') as f: for line in f.readlines(): if '%s%s%s%s'%(source,dest,price,depart_date) in line: Timer(60,task_query_flight).start() else: sendmail(source, dest, price, depart_date) with open('store.txt', 'a') as f: f.write('%s%s%s%s'%(source,dest,price,depart_date)) Timer(60,task_query_flight).start() ''' 两个问题: 1、列表越界 list out of range 2、定时器只会运行一次 不知什么原因。 if 没找到discount<2的, 则 循环一直找 并且设定时器到某一时间即清空文件内容 ''' while True: task_query_flight() current_time = time.localtime(time.time()) if((current_time.tm_hour == 7) and (current_time.tm_min == 0)): with open('store1.txt','w') as f: f.truncate() time.sleep(60) if __name__ == '__main__': task_query_flight()
Python爬虫抓取信息存储到excel表格后,怎么实行数据可视化
我用python爬去了起点中文网的一些信息,并且存储到excel中,现在想要实现数据可视化怎么写应该 import requests from lxml import etree from openpyxl import Workbook class Book(): def __init__(p): p.url = 'https://www.qidian.com/rank/hotsales?page={页数}' p.wb = Workbook() # class实例化 p.ws = p.wb.active # 激活工具表 p.ws.append(['书名', '作者', '类型', '连载状态']) # 添加对应的表头 def geturl(p): url = [p.url.format(页数 =i) for i in range(1,15)] return url def parse_url(p,url): response =requests.get(url,timeout = 5) return response.content.decode('utf-8','ignore') def get_list(p,html_str): html = etree.HTML(html_str) connect_list = [] lists = html.xpath("//div[@class='book-img-text']/ul/li//div[@class='book-mid-info']") for list in lists: item = {} item['书名'] = ''.join(list.xpath("./h4/a/text()")) item['作者'] = ''.join(list.xpath("./p[@class='author']/a[1]/text()")) item['类型'] = ''.join(list.xpath("./p[@class='author']/a[2]/text()")) item['连载状态'] = ''.join(list.xpath("./p[@class='author']/span/text()")) connect_list.append(item) return connect_list def save_list(p, connects): for connect in connects: p.ws.append([connect['书名'], connect['作者'], connect['类型'], connect['连载状态']]) print('保存小说信息成功') def run(p): url_list = p.geturl() for url in url_list: html_url =p.parse_url(url) connects = p.get_list(html_url) p.save_list(connects[:]) p.wb.save('book.xlsx') if __name__=='__main__': spider = Book() spider.run()
python scrapy框架爬虫问题 求解答
我的代码如图,当phone_url重复,其他数据也会重复 ![图片说明](https://img-ask.csdn.net/upload/202003/04/1583318501_131545.jpg) 下面爬取的内容,求解当phone_url重复是,其他数据不重复
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
2019年还剩1天,我从外包公司离职了
这日子过的可真快啊,2019年还剩1天,外包公司干了不到3个月,我离职了
《面试宝典》2019年springmvc面试高频题(java)
前言 2019即将过去,伴随我们即将迎来的又是新的一年,过完春节,马上又要迎来新的金三银四面试季。那么,作为程序猿的你,是否真的有所准备的呢,亦或是安于本职工作,继续做好手头上的事情。 当然,不论选择如何,假如你真的准备在之后的金三银四跳槽的话,那么作为一个Java工程师,就不可不看了。如何在几个月的时间里,快速的为即将到来的面试进行充分的准备呢? 1、什么是Spring MVC ?简单...
计算机网络的核心概念
这是《计算机网络》系列文章的第二篇文章 我们第一篇文章讲述了计算机网络的基本概念,互联网的基本名词,什么是协议以及几种接入网以及网络传输的物理媒体,那么本篇文章我们来探讨一下网络核心、交换网络、时延、丢包、吞吐量以及计算机网络的协议层次和网络攻击。 网络核心 网络的核心是由因特网端系统和链路构成的网状网络,下面这幅图正确的表达了这一点 那么在不同的 ISP 和本地以及家庭网络是如何交换信息的呢?...
python自动下载图片
近日闲来无事,总有一种无形的力量萦绕在朕身边,让朕精神涣散,昏昏欲睡。 可是,像朕这么有职业操守的社畜怎么能在上班期间睡瞌睡呢,我不禁陷入了沉思。。。。 突然旁边的IOS同事问:‘嘿,兄弟,我发现一个网站的图片很有意思啊,能不能帮我保存下来提升我的开发灵感?’ 作为一个坚强的社畜怎么能说自己不行呢,当时朕就不假思索的答应:‘oh, It’s simple. Wait for me a few
一名大专同学的四个问题
【前言】   收到一封来信,赶上各种事情拖了几日,利用今天要放下工作的时机,做个回复。   2020年到了,就以这一封信,作为开年标志吧。 【正文】   您好,我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。   先说一下我的基本情况,高考失利,不想复读,来到广州一所大专读计算机应用技术专业。学校是偏艺术类的,计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
20道你必须要背会的微服务面试题,面试一定会被问到
写在前面: 在学习springcloud之前大家一定要先了解下,常见的面试题有那块,然后我们带着问题去学习这个微服务技术,那么就会更加理解springcloud技术。如果你已经学了springcloud,那么在准备面试的时候,一定要看看看这些面试题。 文章目录1、什么是微服务?2、微服务之间是如何通讯的?3、springcloud 与dubbo有哪些区别?4、请谈谈对SpringBoot 和S...
Java 14 都快来了,为什么还有这么多人固守Java 8?
从Java 9开始,Java版本的发布就让人眼花缭乱了。每隔6个月,都会冒出一个新版本出来,Java 10 , Java 11, Java 12, Java 13, 到2020年3月份,...
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
python爬取百部电影数据,我分析出了一个残酷的真相
2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线观影人次17.27亿,同比增长0.64%。 看上去似乎是一片大好对不对?不过作为一名严谨求实的数据分析师,我从官方数据中看出了一点端倪:国产票房增幅都已经高达8.65%了,为什...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试一个ArrayList我都能跟面试官扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
2020年1月中国编程语言排行榜,python是2019增长最快编程语言
编程语言比例 排名 编程语言 最低工资 工资中位数 最低工资 最高工资 人头 人头百分比 1 rust 20713 17500 5042 46250 480 0.14% 2 typescript 18503 22500 6000 30000 1821 0.52% 3 lua 18150 17500 5250 35000 2956 0.84% 4 go 17989 16...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
Idea 中最常用的10款插件(提高开发效率),一定要学会使用!
学习使用一些插件,可以提高开发效率。对于我们开发人员很有帮助。这篇博客介绍了开发中使用的插件。
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
立即提问