python爬虫:soup.select()抓取信息路径表达问题

大家好:

在网上看到了一段关于使用python爬虫爬取小猪短租上房源信息的代码(请见出处: https://www.cnblogs.com/november1943/p/5230924.html

根据这个代码想要做一些拓展:额外爬取:房屋面积 (如图所示)
图片说明

从后台来看相关的面积信息位置如下
图片说明

打算使用b4库的 soup.select()功能抓取信息,但是不知道该如何告诉python 这条信息的路径...

请问大家这个信息的路径应该如何表达?

求点播 感谢大家

1个回答

没用过select,但看样子是这样用的

from bs4 import BeautifulSoup
import requests

url = 'http://bj.xiaozhu.com/fangzi/1508951935.html'
web_data = requests.get(url)
soup = BeautifulSoup(web_data.text, 'lxml')

title = soup.select('div.pho_info > h4 ')[0].text
address = soup.select('div.pho_info > p ')[0].get('title')
price = soup.select('div.day_l > span')[0].text
area = soup.select('li.border_none >p ')[0].next
first_pic = soup.select('#curBigImage')[0].get('src')
landlord_pic = soup.select('div.member_pic > a > img')[0].get('src')
landlord_name = soup.select('div.w_240 > h6 > a')[0].text
if soup.select('span[class="member_girl_ico"]'):
    landlord_gender = 'female'
else:
    landlord_gender = 'male'
data = {
'title': title,
'address': address,
'price': price,
'area':area,
'first_pic': first_pic,
'landlord_pic': landlord_pic,
'landlord_name': landlord_name,
'landlord_gender': landlord_gender
}
print(data)
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Python爬虫soup.findAll("li", {"class": "result"})为空
``` 大家好~ 我之前写的爬虫是单独针对某个页面的,比如新浪微博。这次需要在全网范围查询关于“开灯”有关的句子或文章,但是soup.findall("li",{"class":"result"})的结果一直是空。求助,谢谢。 PS:网上参考其他的例子,也都是在这个地方出问题,空的。。。 代码如下: #-*-coding:utf-8-*- __author__ = 'Daniel' #python3.5 #'爬取关于开灯的新闻' import re import urllib import chardet from bs4 import BeautifulSoup def remove_js_css(content): r = re.compile(r'''<scrip.*?</scrip>''', re.I|re.M|re.S) s = r.sub('', content) r = re.compile(r'''<style.*?</style>''', re.I|re.M|re.S) s = r.sub('', s) r = re.compile(r'''<!--.*?-->''', re.I|re.M|re.S) s = r.sub('', s) r = re.compile(r'''<meta.*?>''', re.I|re.M|re.S) s = r.sub('', s) r = re.compile(r'''<ins.*?</ins>''', re.I|re.M|re.S) s = r.sub('', s) return s def remove_empty_line(content): r = re.compile(r'''^\s+$''', re.M|re.S) s = r.sub('', content) r = re.compile(r'''\n+''', re.M|re.S) s = r.sub('\n', s) return s def remove_any_tag(s): s = re.sub(r'''<[^>]+>''', '', s) return s.strip() def remove_any_tag_but_a(s): text = re.findall(r'''<a[^r][^>]*>(.*?)</a>''', s, re.I|re.S|re.S) text_b = remove_any_tag(s) return len(''.join(text)), len(text_b) def remove_image(s, n=50): image = 'a' * n r = re.compile(r'''<img.*?>''', re.I|re.M|re.S) s = r.sub(image, s) return s def remove_video(s, n=1000): video = 'a' * n r = re.compile(r'''<embed.*?>''', re.I|re.M|re.S) s = r.sub(video, s) return s def sum_max(values): cur_max = values[0] glo_max = -99999 left, right = 0, 0 for index, value in enumerate(values): cur_max += value if(cur_max > glo_max): glo_max = cur_max right = index elif(cur_max < 0): cur_max = 0 for i in range(right, -1, -1): glo_max -= values[i] if abs(glo_max < 0.0001): left = i break return left, right + 1 def method_1(content, k = 1): if not content: return None, None, None, None tmp = content.split('\n') group_value = [] for i in range(0, len(tmp), k): group = '\n'.join(tmp[i:i+k]) group = remove_image(group) group = remove_video(group) text_a, text_b = remove_any_tag_but_a(group) temp = (text_b - text_a) - 8 group_value.append(tmp) left, right = sum_max(group_value) return left, right, len('\n'.join(tmp[:left])), len('\n'.join(tmp[:right])) def extract(content): content = remove_empty_line(remove_js_css(content)) left, right, x, y = method_1(content) return '\n'.join(content.split('\n')[left:right]) #输入url,将其新闻页的正文输入txt def extract_news_content(web_url, file_name): request = urllib.Request(web_url) #在请求加上头信息,伪装成浏览器访问 request.add_header('User-Agent','Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6') opener = urllib.build_opener() html = opener.open(request).read() infoencode = chardet.detect(html)['encoding']##通过第3方模块来自动提取网页的编码 if html != None and infoencode != None:#提取内容不为空,error.或者用else html = html.decode(infoencode, 'ignore') soup = BeautifulSoup(html) content = soup.renderContents() content_text = extract(content)#提取新闻网页中的正文部分,化为无换行的一段文字 content_text = re.sub("&nbsp;"," ",content_text) content_text = re.sub("&gt;","",content_text) content_text = re.sub("&quot;",'""',content_text) content_text = re.sub("<[^>]+>","",content_text) content_text = re.sub("\n","",content_text) file = open(file_name,'a')#append file.write(content_text) file.close() #抓取百度新闻搜索结果:中文搜索,前10页,url:key=关键词 def search(key_word): search_url = 'http://news.baidu.com/ns?word=key_word&tn=news&from=news&cl=2&rn=20&ct=1' req = urllib.request.urlopen(search_url.replace('key_word', key_word)) real_visited = 0 for count in range(10):#前10页 html = req.read() soup = BeautifulSoup(html) content = soup.findAll("li", {"class": "result"}) #resultset object num = len(content) for i in range(num): #先解析出来所有新闻的标题、来源、时间、url p_str = content[i].find('a') #if no result then nontype object contenttitle = p_str.renderContents() contenttitle = contenttitle.decode('utf-8', 'ignore')#need it contenttitle = re.sub("<[^>]+>", "", contenttitle) contentlink = str(p_str.get("href")) #存放顺利抓取的url,对比 visited_url = open(r'visited-cn.txt', 'r')#是否已经爬过 visited_url_list = visited_url.readlines() visited_url.close()#及时close exist = 0 for item in visited_url_list: if contentlink == item: exist = 1 if exist != 1:#如果未被访问url p_str2 = content[i].find('p').renderContents() contentauthor = p_str2[:p_str2.find("&nbsp;&nbsp")]#来源 contentauthor = contentauthor.decode('utf-8', 'ignore')#时 contenttime = p_str2[p_str2.find("&nbsp;&nbsp") + len("&nbsp;&nbsp") + 1:] contenttime = contenttime.decode('utf-8', 'ignore') #第i篇新闻,filename="D:\\Python27\\newscn\\%d.txt"%(i) #file = open(filename,'w'),一个txt一篇新闻 real_visited += 1 file_name = r"newscn\%d.txt"%(real_visited) file = open(file_name,'w') file.write(contenttitle.encode('utf-8')) file.write(u'\n') file.write(contentauthor.encode('utf-8')) file.write(u'\n') file.write(contenttime.encode('utf-8')) file.write(u'\n'+contentlink+u'\n') file.close() extract_news_content(contentlink, file_name)#还写入文件 visited_url_list.append(contentlink)#访问之 visited_url = open(r'visited-cn.txt', 'a')#标记为已访问,永久存防止程序停止后丢失 visited_url.write(contentlink+u'\n') visited_url.close() if len(visited_url_list) >= 120: break #解析下一页 if count == 0: next_num = 0 else: next_num = 1 next_page = 'http://news.baidu.com' + soup('a',{'href':True,'class':'n'})[next_num]['href'] # search for the next page#翻页 print(next_page) req = urllib.urlopen(next_page) if __name__=='__main__': #key_word = input('input key word:') key_word = 'helloworld' search(key_word) ```
求解:soup.p.parent可以找到p的父节点,但soup.find_parent(name="p")返回None,why?
rt ![图片说明](https://img-ask.csdn.net/upload/201904/11/1554974405_819370.png)
python 爬虫利用urllib.request.urlretrieve() 保存图片在本地,图片没有内容
我用Jupyter Notebook爬取了需要保存的图片的url,但是利用urllib.request.urlretrieve() 将图片保存到本地,图片没有内容,该url使用360浏览器打开也是没有内容的图片(和我保存在本地一样),但是用goole打开就是正常的图片。 相关代码 url='http://www.jj20.com/bz/zrfg/d...' response=urllib.request.urlopen(url) html=response.read().decode('gb2312') soup=BeautifulSoup(html,'lxml') data=soup.select('body > div.wzfz.top-main.fix > div > ul.pic2.vvi.fix') data2=re.findall('src="(.+?)" width',str(data)) data2 #此处得到了图片链接的一个列表 ![图片说明](https://img-ask.csdn.net/upload/201812/21/1545361931_226911.png) x=0 for itemm in data2: print(itemm) urllib.request.urlretrieve(itemm,'C:\\Users\\Administrator\\Desktop\\pachong2\\%s.jpg'%x) x+=1 #通过链接保存图片到本地 代码完毕,运行不报错,但保存的图片却是加密图片,如下 ![图片说明](https://img-ask.csdn.net/upload/201812/21/1545361949_493100.png)我用360浏览器打开这些url也是显示这个,但是用goole打开就是正常的图片。如下: ![图片说明](https://img-ask.csdn.net/upload/201812/21/1545361998_909451.png) 我百度了好多相关内容,但和别人的出错结果都不一样,想知道这种情况是怎么回事,为什么360浏览器打开是这样的,还有就是要怎么才能通过goole浏览器把图片下载下来呢。
为啥在jupyter运行没有结果
from bs4 import BeautifulSoup import requests import time headers={ 'Uster-Agent':'Mozilla/5.0(Windows NT 6.1;WOW64) AppleWebKit/537.36(KHTML,like Gecko) Cheom/53.0.2785.143 Safri/537.6' } def judgment_sex(class_name): if class_name ==['member_icol']: return '女' else: return '男' def get_links(url): wb_data =requests.get(url,headers=headers) soup= BeautifulSoup (wb_data.text,'lxml') links=soup.select('#page_list>ul>li>a') for link in links: href =link.get("href") get_info(href) def get_info (url): wb_data=requests.get(url,headers=headers) soup=BeautifulSoup(wb_data.texr,'lxml') titles=soup.select('div.pho_info>h4') addresses=soup.select('span.pro5') prices=soup.select('#pricePart>div.day_1>span') imgs=soup.select('#floatRightBox>div.js>box.clearfix>div.member_pic>a>img') names=soup.select('#floatRightBox>div.js_box.clearfix>div.w240>h6>a') sex.soup.select('#floatRightBox>div.js_box.clearfix>div.member_pic>div') for tittle, address, price, img, name, sex in zip(tittle,addresses,prices,imgs,names,sexs): data={ 'tittle':tittle.get_text().strip, 'address':address.get_text().strip(), 'price':price.get_text(), 'img':img.get("src"), 'name':name.get_text(), 'sex':judgment_sex(sex.get("clas")) } print(data) if __name__ == '__main__': urls=['http://bj.xiaozhu.com/search-duanzufang-p{}-0/'.format(number)for number in range (1,14)] for single_url in urls: get_links(single_url) time.sleep(4)
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()
python3.4.1中,爬虫出现UnicodeEncodeError。
python3.4.1中,出现UnicodeEncodeError: 'ascii' codec can't encode characters in position 36-39: ordinal not in range(128) 以下是编写的代码: import urllib.request import urllib.parse from bs4 import BeautifulSoup import re def main(): keyword = input("请输入关键词:") keyword = urllib.parse.urlencode({"word":keyword}) response = urllib.request.urlopen("http://baike.baidu.com/search/word?%s" % keyword) html = response.read() soup = BeautifulSoup(html, "html.parser") for each in soup.find_all(href=re.compile("view")): content = ''.join([each.text]) url2 = ''.join(["http://baike.baidu.com", each["href"]]) response2 = urllib.request.urlopen(url2) html2 = response2.read() soup2 = BeautifulSoup(html2, "html.parser") if soup2.h2: content = ''.join([content, soup2.h2.text]) content = ''.join([content, " -> ", url2]) print(content) if __name__=="__main__": main()
爬虫遇到一个小问题 请大佬们帮帮忙
![图片说明](https://img-ask.csdn.net/upload/201801/12/1515758127_764822.jpg)我想爬小猪租房网北京地区房源前三页 我的爬虫书上用开发者工具的copyselector 爬取 请问为什么 我的代码运行不对 什么也不显示 我是大一学生不懂什么具体的html css具体规则 基本点完copyselector 就直接粘贴了 不知道是否还要加工一下![图片说明](https://img-ask.csdn.net/upload/201801/12/1515757189_145542.jpg) ``` #encoding:utf-8 from bs4 import BeautifulSoup import requests import time headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36'} def get_links(url): wbdata = requests.get(url, headers=headers) print(wbdata.status_code) soup = BeautifulSoup(wbdata.text, 'lxml') links = soup.select('#page_list > ul > li > a') for link in links: href = link.get("href") get_info(href) def get_info(url): wbdata = requests.get(url, headers=headers) soup = BeautifulSoup(wbdata.text, 'lxml') tittles = soup.select('div.pho_info > h4') addresss = soup.select('body > div.wrap.clearfix.con_bg > div.con_l > div.pho_info > p > span') prices = soup.select('#pricePart > div.day_l > span') for tittle, address, price in zip(tittles, addresss, prices): data={'tittle':tittle.get_text().strip(),'address':address.get_text().strip(),'price':price.get_text()} print(data) if __name__ == '__main__': urls = ['http://bj.xiaozhu.com/search-duanzufang-p{}-0/'.format(number) for number in range(1, 3)] for ursl in urls: get_links(ursl) time.sleep(2) ```
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爬虫爬取标签一样时候出错
start_prices = soup.select('#J_HoverShow > tr:nth-of-type(1) > td:nth-of-type(1) > span.pay-price > span') consult_prices = soup.select('#J_HoverShow > tr:nth-of-type(3) > td:nth-of-type(2) > span.pay-price > span') 这是一个URL的两个数据,child已经改成了of-type,我爬的时候不报错,但是爬不下来。求指点
小白用python编写的爬虫小程序突然失效,是ip被封还是其他问题,求教?
# 编写的python小程序,爬取豆瓣评论,昨天还可以用,今天就失效了,试过很多种解决方法,都没有成功,求教? ## 可能的问题是ip被封或者cookies? 主程序 ``` # -*- coding: utf-8 -*- import ReviewCollection from snownlp import SnowNLP from matplotlib import pyplot as plt #画饼状图 def PlotPie(ratio, labels, colors): plt.figure(figsize=(6, 8)) explode = (0.05,0) patches,l_text,p_text = plt.pie(ratio,explode=explode,labels=labels,colors=colors, labeldistance=1.1,autopct='%3.1f%%',shadow=False, startangle=90,pctdistance=0.6) plt.axis('equal') plt.legend() plt.show() def main(): #初始url url = 'https://movie.douban.com/subject/30176393/' #保存评论文件 outfile = 'review.txt' (reviews, sentiment) = ReviewCollection.CollectReivew(url, 20, outfile) numOfRevs = len(sentiment) print(numOfRevs) #print(sentiment) positive = 0.0 negative = 0.0 accuracy = 0.0 #利用snownlp逐条分析每个评论的情感 for i in range(numOfRevs): # if sentiment[i] == 1: # positive += 1 # else: # negative += 1 print(reviews[i]+str(i)) sent = SnowNLP(reviews[i]) predict = sent.sentiments #print(predict,end=' ') if predict >= 0.5: positive += 1 if sentiment[i] == 1: accuracy += 1 else: negative += 1 if sentiment[i] == 0: accuracy += 1 #计算情感分析的精度 print('情感预测精度为: ' + str(accuracy/numOfRevs)) # print(positive,negative) #绘制饼状图 #定义饼状图的标签 labels = ['Positive Reviews', 'Negetive Reviews'] #每个标签占的百分比 ratio = [positive/numOfRevs, negative/numOfRevs] # print(ratio[0],ratio[1]) colors = ['red','yellowgreen'] PlotPie(ratio, labels, colors) if __name__=="__main__": main() ``` 次程序 ``` #!/usr/bin/python # -*- coding: utf-8 -*- from bs4 import BeautifulSoup import requests import csv import re import time import codecs import random def StartoSentiment(star): ''' 将评分转换为情感标签,简单起见 我们将大于或等于三星的评论当做正面评论 小于三星的评论当做负面评论 ''' score = int(star[-2]) if score >= 3: return 1 else: return 0 def CollectReivew(root, n, outfile): ''' 收集给定电影url的前n条评论 ''' reviews = [] sentiment = [] urlnumber = 0 headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36','Connection': 'close','cookie': 'll="108303"; bid=DOSjemTnbi0; _pk_ses.100001.4cf6=*; ap_v=0,6.0; __utma=30149280.1517093765.1576143949.1576143949.1576143949.1; __utmb=30149280.0.10.1576143949; __utmc=30149280; __utmz=30149280.1576143949.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utma=223695111.1844590374.1576143949.1576143949.1576143949.1; __utmc=223695111; __utmz=223695111.1576143949.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmt=1; __yadk_uid=iooXpNnGnHUza2r4ru7uRCpa3BXeHG0l; dbcl2="207917948:BFXaC6risAw"; ck=uFvj; _pk_id.100001.4cf6=4c11da64dc6451d3.1576143947.1.1576143971.1576143947.; __utmb=223695111.2.10.1576143949'} proxies = { "http":'http://121.69.46.177:9000',"https": 'https://122.136.212.132:53281'}#121.69.46.177:9000218.27.136.169:8085 122.136.212.132:53281 while urlnumber < n: url = root + 'comments?start=' + str(urlnumber) + '&limit=20&sort=new_score&status=P' print('要收集的电影评论网页为:' + url) # try: html = requests.get(url, headers = headers, proxies = proxies,timeout = 15) # # except Exception as e: # break soup = BeautifulSoup(html.text.encode("utf-8"),'html.parser') #通过正则表达式匹配评论和评分 for item in soup.find_all(name='span',attrs={'class':re.compile(r'^allstar')}): sentiment.append(StartoSentiment(item['class'][0])) #for item in soup.find_all(name='p',attrs={'class':''}): # if str(item).find('class="pl"') < 0: # r = str(item.string).strip() # reviews.append(r) comments = soup.find_all('span','short') for comment in comments: # print(comment.getText()+'\n') reviews.append(comment.getText()+'\n') urlnumber = urlnumber + 20 time.sleep(5) with codecs.open(outfile, 'w', 'utf-8') as output: for i in range(len(sentiment)): output.write(reviews[i] + '\t' + str(sentiment[i]) + '\n') return (reviews, sentiment) ``` ![图片说明](https://img-ask.csdn.net/upload/201912/12/1576149313_611712.jpg) 不设置参数proxies时错误如下:![图片说明](https://img-ask.csdn.net/upload/201912/12/1576149408_985833.jpg) 求教解决方法,感谢!!!!
新人入坑爬虫的一个小小问题 麻烦各位大佬帮我讲讲
最近买了本爬虫书 他是用chrome 开发者工具的copyselectorr来获取元素地址 我按照书上爬取小猪租房网 比方说我怕取图片上的的地址按照copyselector 粘贴过来的是body > div.wrap.clearfix.con_bg > div.con_l > div.pho_info > p > span 但是程序运行不对输出空白 改成这样就对了'div.con_l > div.pho_info > p > span' 请问这是为什么呢 为什么删掉就行 本人目前大一 水平有限 望各位大佬用尽量简单的知识讲解![图片说明](https://img-ask.csdn.net/upload/201801/13/1515827861_676106.jpg) 以下是我的代码 问题对应adresss那行 ``` #encoding:utf-8 from bs4 import BeautifulSoup import requests import time headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36'} def get_links(url): wbdata = requests.get(url, headers=headers) print(wbdata.status_code) soup = BeautifulSoup(wbdata.text, 'lxml') links = soup.select('#page_list > ul > li > a') for link in links: href = link.get("href") get_info(href) def get_info(url): wbdata = requests.get(url, headers=headers) soup = BeautifulSoup(wbdata.text, 'lxml') tittles = soup.select('div.pho_info > h4') addresss = soup.select('body > div.wrap.clearfix.con_bg > div.con_l > div.pho_info > p > span') prices = soup.select('#pricePart > div.day_l > span') for tittle, address, price in zip(tittles, addresss, prices): data={'tittle':tittle.get_text().strip(),'address':address.get_text().strip(),'price':price.get_text()} print(data) if __name__ == '__main__': urls = ['http://bj.xiaozhu.com/search-duanzufang-p{}-0/'.format(number) for number in range(1, 3)] for ursl in urls: get_links(ursl) time.sleep(2) ```
python爬虫爬取有地方出错了?
本人新手小白,在看了 慕课老师课程后写了尝试爬取静态股票信息。网站是对的,spider上也没报错。 就是没出结果,也没发现保存文档。求大佬指正。 代码如下: ``` import requests from bs4 import BeautifulSoup import traceback import re def getHTMLText(url, code="utf-8"): try: r = requests.get(url) r.raise_for_status() r.encoding = code return r.text except: return "" def getStockList(lst, stockURL): html = getHTMLText(stockURL, "GB2312") soup = BeautifulSoup(html, 'html.parser') a = soup.find_all('a') for i in a: try: href = i.attrs['href'] lst.append(re.findall(r"[s][hz]\d{6}", href)[0]) except: continue def getStockInfo(lst, stockURL, fpath): count = 0 for stock in lst: url = stockURL + stock + ".html" html = getHTMLText(url) try: if html=="": continue infoDict = {} soup = BeautifulSoup(html, 'html.parser') stockInfo = soup.find('div',attrs={'class':'stock-bets'}) name = stockInfo.find_all(attrs={'class':'bets-name'})[0] infoDict.update({'股票名称': name.text.split()[0]}) keyList = stockInfo.find_all('dt') valueList = stockInfo.find_all('dd') for i in range(len(keyList)): key = keyList[i].text val = valueList[i].text infoDict[key] = val with open(fpath, 'a', encoding='utf-8') as f: f.write( str(infoDict) + '\n' ) count = count + 1 print("\r当前进度: {:.2f}%".format(count*100/len(lst)),end="") except: count = count + 1 print("\r当前进度: {:.2f}%".format(count*100/len(lst)),end="") continue def main(): stock_list_url = 'https://quote.eastmoney.com/stock_list.html' stock_info_url = 'https://gupiao.baidu.com/stock/' output_file = 'C:/BaiduStockInfo.txt' slist=[] getStockList(slist, stock_list_url) getStockInfo(slist, stock_info_url, output_file) main() ```
link = soup.select怎么用呢?
这个错误怎么修改呢?在网上找到一段代码,新手……找了半天资料还是不会修改错误,怎么改就能正常运行了……![图片说明](https://img-ask.csdn.net/upload/201611/26/1480150216_762916.png)
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爬虫结果为空TT
新手修改了网上代码,想要爬百度新闻的标题和简介,不知道为什么运行结果是空。在mac自带的python2上运行: ``` from urllib import urlopen import csv import re from bs4 import BeautifulSoup import sys reload(sys) sys.setdefaultencoding("utf-8") for k in range(1,36): url = "http://news.baidu.com/ns?word=低保&pn=%s&cl=2&ct=1&tn=news&rn=20&ie=utf-8&bt=0&et=0"% ((k-1)*20) csvfile = file("Dibao.csv", "ab+") writer = csv.writer(csvfile) content = urlopen(url).read() soup = BeautifulSoup(content,"lxml") list0 = [] list1 = [] list2 = [] list3 = [] for i in range(1,20): hotNews = soup.find_all("div", {"class", "result"})[i] a1=hotNews.find(name="a", attrs={"target": re.compile("_blank")}) list0.append(a1.text) a2=hotNews.find(name="p", attrs={"class": re.compile("c-author")}) t1=a2.text.split()[0] list1.append(t1) t2 = a2.text.split()[1] list2.append(t2) if t2.find(u"年") == 4: t3 = a2.text.split()[2] list3.append(t3) else: list3.append(" ") #将数据写入csv data = [] for i in range(0,20): data.append((list0[i], list1[i], list2[i],list3[i])) writer.writerows(data) csvfile.close() print "第" + str(k) + "页完成" ``` 报错: Traceback (most recent call last): File "<stdin>", line 12, in <module> IndexError: list index out of range 不懂参数过范围什么意思,新闻一共37页,每页20条。 希望有大神能帮忙看一下,多谢啦~
Python获取网页所有链接数时,python r.html.links与BeautifulSoup两种方法查找所得链接数不同?
bs4方法: ``` import requests from bs4 import BeautifulSoup url="http://www.baidu.com" r=requests.get(url) soup=BeautifulSoup(r.text,'html.parser') num=0 for link in soup.find_all("a"): print(link.get('href')) num=num+1 print(num) ``` 输出结果为11个链接 r.html.links方法 ``` from requests_html import HTMLSession session=HTMLSession() url="http://www.baidu.com" r=session.get(url) num=0 for link in r.html.links: print(link) num=num+1 print(num) ``` 输出结果为26个链接
python爬虫的奇葩错误,socket.gaierror: [Errno 11001] getaddrinfo failed
```''' 文件名:爬取斗鱼直播间信息到jsonline文件.py ''' from __future__ import unicode_literals import multiprocessing import socket import time import re import requests from bs4 import BeautifulSoup import json # 配置socket的ip和端口 client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) host = socket.gethostbyname("openbarrage.douyutv.com") port = 8601 client.connect((host, port)) # 获取用户昵称及弹幕信息的正则表达式 danmu = re.compile(b'type@=chatmsg.*?/nn@=(.*?)/txt@=(.*?)/.*?/level@=(.*?)/.*?/bnn@=(.*?)/bl@=(.*?)/') def sendmsg(msgstr): ''' 客户端向服务器发送请求的函数,集成发送协议头的功能 msgHead: 发送数据前的协议头,消息长度的两倍,及消息类型、加密字段和保密字段 使用while循环发送具体数据,保证将数据都发送出去 ''' msg = msgstr.encode('utf-8') data_length = len(msg) + 8 code = 689 msgHead = int.to_bytes(data_length, 4, 'little') \ + int.to_bytes(data_length, 4, 'little') + int.to_bytes(code, 4, 'little') client.send(msgHead) sent = 0 while sent < len(msg): tn = client.send(msg[sent:]) sent = sent + tn def start(roomid): ''' 发送登录验证请求后,获取服务器返回的弹幕信息,同时提取昵称及弹幕内容 登陆请求消息及入组消息末尾要加入\0 ''' msg = 'type@=loginreq/roomid@={}/\0'.format(roomid) sendmsg(msg) msg_more = 'type@=joingroup/rid@={}/gid@=-9999/\0'.format(roomid) sendmsg(msg_more) print('---------------欢迎连接到{}的直播间---------------'.format(get_name(roomid))) while True: data = client.recv(1024) danmu_more = danmu.findall(data) if not data: break else: with open(format(get_name(roomid)) + time.strftime('%Y.%m.%d', time.localtime(time.time())) + '直播弹幕', 'a') as f: try: for i in danmu_more: dmDict = {} # print(i) dmDict['昵称'] = i[0].decode(encoding='utf-8', errors='ignore') dmDict['弹幕内容'] = i[1].decode(encoding='utf-8', errors='ignore') dmDict['等级'] = i[2].decode(encoding='utf-8', errors='ignore') dmDict['徽章昵称'] = i[3].decode(encoding='utf-8', errors='ignore') dmDict['徽章等级'] = i[4].decode(encoding='utf-8', errors='ignore') dmJsonStr = json.dumps(dmDict, ensure_ascii=False) + '\n' # print(dmDict['昵称']) print(dmDict['弹幕内容']) f.write(dmJsonStr) danmuNum = danmuNum + 1 except: continue def keeplive(): ''' 发送心跳信息,维持TCP长连接 心跳消息末尾加入\0 ''' while True: msg = 'type@=mrkl/\0' sendmsg(msg) time.sleep(45) def get_name(roomid): ''' 利用BeautifulSoup获取直播间标题 ''' r = requests.get("http://www.douyu.com/" + roomid) soup = BeautifulSoup(r.text, 'lxml') return soup.find('a', {'class', 'Title-anchorName'}).string # 启动程序 if __name__ == '__main__': room_id = input('请输入房间ID: ') p1 = multiprocessing.Process(target=start, args=(room_id,)) p2 = multiprocessing.Process(target=keeplive) p1.start() p2.start() ```在别人电脑可以运行,但是在自己的电脑上就报错 附上报错截图,有大神可以帮忙处理一下吗?万分感谢 报错: E:\pythonzzz\venv\Scripts\python.exe E:/pythonzzz/爬虫/z3.py Traceback (most recent call last): File "E:/pythonzzz/爬虫/z3.py", line 17, in <module> host = socket.gethostbyname("openbarrage.douyutv.com") socket.gaierror: [Errno 11001] getaddrinfo failed Process finished with exit code 1
BeautifulSoup soup.split() TypeError: 'NoneType' object is not callable
各位大佬,我现在尝试对返回的结果切片,但是一直返回如题的报错,何解? ``` response = requests.get(head_url, headers=headers) print(response) soup = Bs4(response.content, "html.parser") print(soup) soup1 = soup.split('url') print(soup1) ``` 以下是打印出的soup内容 ``` <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta content="NO-CACHE" http-equiv="PRAGMA"/> <script> function redirectOnLoad() { var escapedHash = ''; var url = '/saml/authn-request.jsp?saml_request_id=_2CAAAAW6NkFa5ME8wMEkwMDAwMDA4T0k1AAAA3uVxW4A-puDiWV7jZg4vzIJ8Kruhb9ezWoJrOJYXNUsMN8S5EhLoi_ruRrvfO5oXTbVtclAH9Oy5BfY6VFY9aF0SmypuZsR0UzxMQUsmdJnM4IHrsrhunYEgpkXPPkir6L8EfEYWsKVxnykLFK-I9w5R0mc8n5yaIPcPcW4g-jTMdzhh1lukUvHn88CqNeWC7fkDAiYj9pApLmZhXQE71rP-DVuQ4tBNJtSHe3WiuLAac3BqZbQALbZz7pHKoEWLmg&saml_acs=https%3A%2F%2Fenglish1.my.salesforce.com%3Fso%3D00D28000000bkxy&saml_binding_type=HttpRedirect&Issuer=https%3A%2F%2Fenglish1.my.salesforce.com&samlSsoConfig=0LE28000000Gr3E&RelayState=%2Fp%2Fown%2FOrgSharingDetail%3Fst%3D01I28000001nyrv%26setupid%3DSecuritySharing'; if (window.location.hash) { escapedHash = '%23' + window.location.hash.slice(1); } if (window.location.replace){ window.location.replace(url + escapedHash); } else { window.location.href = url + escapedHash; } } redirectOnLoad(); </script> </head> </html> <!-- Body events --> <script type="text/javascript">function bodyOnLoad(){if(window.PreferenceBits){window.PreferenceBits.prototype.csrfToken="null";};}function bodyOnBeforeUnload(){}function bodyOnFocus(){}function bodyOnUnload(){}</script> <!-- ................................................................................................... ................................................................................................... ................................................................................................... ................................................................................................... --> ```
在python爬虫中使用for循环填入网页id并嵌套函数爬取信息时,无法正确爬取
使用了三个网页ID:38635、38636、38627来测试,输出dic的结果为三个同样的字典(都对应38635), ``` headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'} url='https://db.yaozh.com/hmap?grade=%E5%85%A8%E9%83%A8&p={}&pageSize=30&province=%E5%B9%BF%E4%B8%9C%E7%9C%81&type=%E5%85%A8%E9%83%A8' info_url_model='https://db.yaozh.com{}' for x in ['/hmap/38625.html', '/hmap/38626.html', '/hmap/38627.html']: #test info_url=info_url_model.format(x) #填入医院urlID detail = requests.get(info_url, headers=headers) # 取得内容页面内容 detail.encodint = 'utf-8' soup2 = BeautifulSoup(detail.text, 'html.parser') a = soup2.select('.toFindImg') for b in soup2.find_all(lambda tag: tag.name == 'span' and tag.get('class') == ['toFindImg']): item_list.append(b.text) for i in range(len(item_list)): #去掉空格 item_list[i] = item_list[i].replace(' ', '') #去掉空格 item_list[i] = item_list[i].replace('\n', '') #去掉换行符 dic = dict(zip(item_name, item_list)) # 生成字典 print(dic) ```
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
前端 | 2. 正则
转载请注明以下: 本文转自清自以敬的博客:https://blog.csdn.net/qq_45791147 文章目录1.转义2.正则表达式初步2.1.匹配字符2.1.1.组成元素2.1.2.基础正则的设计 1.转义 转义的作用: 当某个字符在表达式中具有特殊含义,例如字符串引号中出现了引号,为了可以使用这些字符本身,而不是使用其在表达式中的特殊含义,则需要通过转义符“\”来构建该字符转义...
有哪些让程序员受益终生的建议
从业五年多,辗转两个大厂,出过书,创过业,从技术小白成长为基层管理,联合几个业内大牛回答下这个问题,希望能帮到大家,记得帮我点赞哦。 敲黑板!!!读了这篇文章,你将知道如何才能进大厂,如何实现财务自由,如何在工作中游刃有余,这篇文章很长,但绝对是精品,记得帮我点赞哦!!!! 一腔肺腑之言,能看进去多少,就看你自己了!!! 目录: 在校生篇: 为什么要尽量进大厂? 如何选择语言及方...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
Docker 从入门到掉坑
Docker 介绍 简单的对docker进行介绍,可以把它理解为一个应用程序执行的容器。但是docker本身和虚拟机还是有较为明显的出入的。我大致归纳了一下,可以总结为以下几点: docker自身也有着很多的优点,关于它的优点,可以总结为以下几项: 安装docker 从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Doc...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
Python 编程开发 实用经验和技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法和技巧,包括小数保留指定位小数、判断变量的数据类型、类方法@classmethod、制表符中文对齐、遍历字典、datetime.timedelta的使用等,会持续更新......
YouTube排名第一的励志英文演讲《Dream(梦想)》
Idon’t know what that dream is that you have, I don't care how disappointing it might have been as you've been working toward that dream,but that dream that you’re holding in your mind, that it’s po...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
相关热词 c#中dns类 c#合并的excel c# implicit c#怎么保留3个小数点 c# 串口通信、 网络调试助手c# c# 泛型比较大小 c#解压分卷问题 c#启动居中 c# 逻辑或运算符
立即提问