python 用request.get()方法得到的代码与浏览器中的代码不一样,关键要的数据都没有,望大神指点

import requests
import re
from bs4 import BeautifulSoup
import time
header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'}
res=requests.get('https://y.qq.com/n/yqq/toplist/26.html#t1=2019&t2=20&t3=song&t4=1&t5=1',headers=header)
soup=BeautifulSoup(res.text,'lxml')
print(soup)

这是QQ音乐的官方网站,想从中得到歌曲的信息,用这个方法得到的代码比浏览器中代码缺少很多,没去歌曲的信息,只有一些界面的代码

3个回答

用fiddler抓包看下,特别注意user-agent cookie referer postdata这几个地方,一定要和浏览器的一样

废话,你的header信息就一个,直接就被反爬取了,补全它.
而且你这样爬取也有问题,直接怕一个网页,网页调用的其他api也没有爬取,肯定数据会缺失

u010911997
Mr.Yun 回复(๑✦ˑ̫✦)✨: 浏览器抓包 F12
12 个月之前 回复
qq_44376826
(๑✦ˑ̫✦)✨ 初学者,望大神指点,怎么才能爬取网页调用的其他api
12 个月之前 回复

很多网站都是javascript渲染的动态网页,直接用get是抓不到的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
python爬虫移动端评论,浏览器能打开url,但request.get返回内容404,已加header。

python爬虫新手,想爬取一个app评论图,用charles抓包获得url, 在浏览器上能打开是一个xml文件,但是用request.get(url,header)请求开始报错405,将https改为http后报错404 实在找不出问题是什么限制访问了,望大神解答~~~ url= "https://*********************/comment-list.html?page=1&pagesize=20&type=1&fnum=HU7781&dep_code=HAK&arr_code=PEK&tag_id=images&with=reply&user_id=&access_token=jwZ9PW62rrHUWG3ZSJehX-c9PzuSEya0"(真实网址host已用*代替)** charles报文如下 ![图片说明](https://img-ask.csdn.net/upload/201810/12/1539329428_982517.png) ![图片说明](https://img-ask.csdn.net/upload/201810/12/1539329446_282668.png)

使用Pyhton 的requests.get()的时候遇到个技术难题,有经验的大牛请进。

最近,我们学校采用了一款微信公众号用于抢座,但是每次到时间抢座时间点 就出错,因此我就准备使用Python自动抢座:<br><br> 进入抢座页面,通过fidder抓包时候,发现其通过楼层座位坐标来发送一个get 请求如下(蓝色上面那个url):<br><br> ![图片说明](https://img-ask.csdn.net/upload/201812/26/1545819485_184502.png) <br><br> 10073&代表楼层,接着后面的一串英文字母竟然是随机生成的,从10073&一直到=13,12之前都是自动生成:psH4nFZwbz 每次提交座位都会改变,因此我无法把正确的url 提交服务器占位。 我仔细琢磨了下,其并没有异步数据给后台服务器,我猜想是使用js,就爬取他的js发现有以下代码:<br> ![图片说明](https://img-ask.csdn.net/upload/201812/26/1545819836_639462.png)<br> <br> ![图片说明](https://img-ask.csdn.net/upload/201812/26/1545819854_112927.png)<br> 前者官方定义一个函数,使得在触发函数时重新给 url赋值,新url带有随机生成 的字符串,也就是上述所说的随机字母, 后是“确定选座按钮”点击时触发该函数。 <br> 因为我是用Python的requests发送请求,不能操作js生成的url。<br> 注:学校公众号是微信内置浏览器才能打开,需要定义请求头和weChatSESS Cookie,才能浏览,否则被重定向。 我实在没办法解决这个技术问题,请问我该怎么办? 真的非常感谢。

Python爬虫、requests库的get方法,带上headers后出现编码错误

目标网站:知乎 Pyrhon版本:3.6 ``` agent = 'Mozilla/5.0 (Windows NT 6.1; W…) Gecko/20100101 Firefox/59.0' header = { 'HOST': 'www.zhihu.com', 'Referer': 'https://www.zhihu.com', 'User-Agent': agent } response = requests.get('https://www.zhihu.com', headers=header) ``` 报错内容: ``` Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Anaconda3\lib\site-packages\requests\api.py", line 72, in get return request('get', url, params=params, **kwargs) File "C:\Anaconda3\lib\site-packages\requests\api.py", line 58, in request return session.request(method=method, url=url, **kwargs) File "C:\Anaconda3\lib\site-packages\requests\sessions.py", line 518, in request resp = self.send(prep, **send_kwargs) File "C:\Anaconda3\lib\site-packages\requests\sessions.py", line 639, in send r = adapter.send(request, **kwargs) File "C:\Anaconda3\lib\site-packages\requests\adapters.py", line 438, in send timeout=timeout File "C:\Anaconda3\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 600, in urlopen chunked=chunked) File "C:\Anaconda3\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 356, in _make_request conn.request(method, url, **httplib_request_kw) File "C:\Anaconda3\lib\http\client.py", line 1239, in request self._send_request(method, url, body, headers, encode_chunked) File "C:\Anaconda3\lib\http\client.py", line 1280, in _send_request self.putheader(hdr, value) File "C:\Anaconda3\lib\http\client.py", line 1212, in putheader values[i] = one_value.encode('latin-1') UnicodeEncodeError: 'latin-1' codec can't encode character '\u2026' in position 30: ordinal not in range(256) ``` \u2026好像是空格,看了下源码,好像是空格要转latin-1这种编码失败了, 我上面有空格的是agent,要用来伪装浏览器,这可怎么办, 而且在我看的那个知乎爬虫视频中,他也是有空格的,却不出错,这是我的环境有问题吗, 请大佬们能指点一下

写爬虫时,需要的html和用requests.get返回的html不一样导致无法进行下一步,请问怎么解决??

我是用的谷歌浏览器,按f12后经过对比,我发现我代码requests.get返回的是——sources里面的html文本,但我想要的是element里面的html文本,怎么才能返回正确的html呢? ↓这是我想要找的: ![图片说明](https://img-ask.csdn.net/upload/202001/03/1578030348_961781.png) 但是返回的却是这个: ![图片说明](https://img-ask.csdn.net/upload/202001/03/1578030443_120256.png) 然后我写的代码是这个: ![图片说明](https://img-ask.csdn.net/upload/202001/03/1578030526_780774.png) 请问该怎么解决这种情况呢??

想请教一下使用selenium请求网页和requests.get 获取网页的区别

最近刚开始学习selenium,想知道自己的理解对不对,使用selenium模拟登录网页的话可以直接去搜索网页检查里面出现的内容,是经json等文件渲染之后的网页,而requests获取的网页是网页源代码?是这样的区别吗 不知道自己的理解对不对。

python 中,使用 beautifulSoup 获得的网页文本与在浏览器上看到的,格式不一样?

比如有一段 html 源码: html='''<span id='sp1'>span1</span> <span id='sp2'>span2</span>''' 注意如上 html 源码中,sp1 与 sp2 之间有个换行,并且 sp2 之前还有几个空格. 保存最 htm 文件,使用浏览器(ie firefox chrome)渲染后,得到的网页文本是: span1 span2 #注意 span1 与 span2 之间有一个空格. 如果使用 beautifulSoup 获取网页文本,代码如下: from bs4 import BeautifulSoup as bs s=bs(html,'html5lib') web_text=s.get_text() print web_text 结果显示如下: span1 span2 或者:print s.get_text(strip=True),则结果显示如下: span1span2 #注意 span1 与 span2 之间没有空格 由此可见,使用 beautifulsoup 获取到网页文本与浏览器渲染后的网页文本,其格式是不一样的. 那么,要想使用 beautifulsoup 获取到和浏览器渲染后的网页文本的格式一样,该怎么操作呢? 希望方法具有普遍性,不仅仅是针对如上例子中的 htm 源码. 多谢!

请问写python爬虫如何用urllib或者requests模拟用户登录

比如我在百度文库下个课件,http://youke.baidu.com/view/05984a27b4daa58da0114ac6, 我用urllib2或者request,我可以用urllib2.open(url)或者requests.get(url)来打开页面,但是不知道如何写cookie的,就是让浏览器认为你已经登录了,请问如何写urllib或者requests.get呢?谢谢

Python Django中session无法获取值问题

def Login(quest): request.session['test']='test' return JsonResponse(res,safe=False) 我只有在这个函数中能通过request.session.items()和request.session.get(''test)获取到值, 在其他函数中获取不到,值为一个空, 请问这是什么原因呢?

FLASK编写的POST请求方法不能在浏览器中打开

代码如下: # 视图代码 # coding=utf-8 from flask import Flask,request,url_for,render_template,flash from models import User app = Flask(__name__) @app.route('/login',methods=['POST']) def login(): form = request.form #接收前端表单传来的内容 username=form.get('username') password=form.get('password') if not username: # 如果没有用户名 flash("please input username") #向前端传送消息 return render_template('login.html') #将消息返回到前端 if not password: flash("please input password") return render_template('login.html') if username=='Haha' and password=='123456': flash('login success') return render_template('login.html') else: flash("username or password is wrong") return render_template('login.html') # templates下的HTML代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>hello</title> </head> <body> <h1>Hello Login</h1> <form action="/login" method="post"> <input type="text" name="username"> <input type="password" name="password"> <input type="submit" name="Submit"> </form> <h2>{{ get_flashed_messages()[0] }}</h2> </body> </html> 在postman上测试没有问题,但是用浏览器打开网址“http://127.0.0.1:5000/login/”时会默认用get方法请求网页,因此报“Method Not Allowed The method is not allowed for the requested URL.”错误。 求问怎么在打开网页时,修改get请求到post,正确打开post编写的网页。

Python爬虫,我用bs4的find方法为什么反回的是空值?怎么解决(已解决)?

代码如下: ``` import time import random import requests import urllib from bs4 import BeautifulSoup headers=("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36") opener=urllib.request.build_opener() opener.addheaders=[headers] urllib.request.install_opener(opener) class UserAgent(): def _get_UA(self,html): soup = BeautifulSoup(html, "html.parser") ip_get = [] ip_list = soup.find_all("tr") for i in range(1,len(ip_list)): ip_both = ip_list[i].find_all("td") front = ip_both[1].text+':' ip_get.append(front+ip_both[2].text) time.sleep(random.randint(15,20)) return ip_get def _get_html(self,html): if html==None: this_html=urllib.request.urlopen('https://www.xicidaili.com/nn/1') else: soup = BeautifulSoup(html,"html.parser") next_page_url = soup.find("a",class_="next_page") print(next_page_url) html = urllib.request.urlopen('https://www.xicidaili.com'+next_page_url) this_html = html return this_html ``` 错误出在_get_html方法中else里面的代码,传入的地址没有问题,我用浏览器可以正常打开地址https://www.xicidaili.com/nn/1 主运行代码如下: ``` n = User_Agent.UserAgent() ip_html = n._get_html(None) fake_ip = n._get_UA(ip_html) ip_html = n._get_html(ip_html) ``` 还有报错是这么说的: ``` Traceback (most recent call last): File "E:\java4412\spider_demo\book_spider\main.py", line 21, in <module> None ip_html = n._get_html(ip_html) File "E:\java4412\spider_demo\book_spider\User_Agent.py", line 35, in _get_html html = urllib.request.urlopen('https://www.xicidaili.com'+next_page_url) TypeError: Can't convert 'NoneType' object to str implicitly ``` 有哪位大牛帮我看看这代码哪里不对么?本小白已经要疯了。。。。。 =========================分割线================================================================= 问题已解决 原因是我原先一直用一个固定header 我找了一个别人收集的User_Agent集合,在代码中随机更换header。 更改后的代码如下: ``` class UserAgent(): def _get_UA(self,soup): headers=("User-Agent",Headers.getheaders()) opener=urllib.request.build_opener() opener.addheaders=[headers] urllib.request.install_opener(opener) # soup = BeautifulSoup(html, "html.parser") ip_get = [] ip_list = soup.find_all("tr") for i in range(1,len(ip_list)): ip_both = ip_list[i].find_all("td") front = ip_both[1].text+':' ip_get.append(front+ip_both[2].text) time.sleep(random.randint(15,20)) return ip_get def _get_html_first(self): headers=("User-Agent",Headers.getheaders()) opener=urllib.request.build_opener() opener.addheaders=[headers] urllib.request.install_opener(opener) this_html=urllib.request.urlopen('https://www.xicidaili.com/nn/1') soup = BeautifulSoup(this_html,"html.parser") return soup def _get_soup(self,soup): headers=("User-Agent",Headers.getheaders()) opener=urllib.request.build_opener() opener.addheaders=[headers] urllib.request.install_opener(opener) next_page_url = soup.find("a",class_="next_page").get('href') print(next_page_url) html = urllib.request.urlopen('https://www.xicidaili.com'+next_page_url) soup = BeautifulSoup(html,'html.parser') return soup ``` 进行了一定的修改,可以正确运行。其中的_print()_是我为验证结果打的。

Python+Selenium打不开IEDriver,是什么原因呐,求助!!

【环境信息】 Python3.6+Selenium3.0.2+IE10+win7 【问题描述】 1、用如下代码打不开IE浏览器,但是能打开火狐浏览器 import unittest import os from selenium import webdriver class TestAutoMethods(unittest.TestCase): #打开Firefox浏览器 def test_openbrower(self): browser = webdriver.Firefox() browser.get("http://www.baidu.com") def test_FirstVase(self): #ie_driver = os.path.abspath(r"C:\Program Files(x86)\Internet Explorer\IEDriverServer.exe") #os.environ["webdriver.ie.driver"] = ie_driver browser = webdriver.Ie() browser.get("http://www.youdao.com") if __name__ == '__main__': unittest.main() 2、报错信息 Error Traceback (most recent call last): File "D:\Users\chenle\PycharmProjects\untitled\test\FirstExam.py", line 14, in test_FirstVase browser = webdriver.Ie() File "C:\Program Files\Python36\lib\site-packages\selenium\webdriver\ie\webdriver.py", line 57, in __init__ desired_capabilities=capabilities) File "C:\Program Files\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 92, in __init__ self.start_session(desired_capabilities, browser_profile) File "C:\Program Files\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 179, in start_session response = self.execute(Command.NEW_SESSION, capabilities) File "C:\Program Files\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 234, in execute response = self.command_executor.execute(driver_command, params) File "C:\Program Files\Python36\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 408, in execute return self._request(command_info[0], url, body=data) File "C:\Program Files\Python36\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 478, in _request resp = opener.open(request, timeout=self._timeout) File "C:\Program Files\Python36\lib\urllib\request.py", line 526, in open response = self._open(req, data) File "C:\Program Files\Python36\lib\urllib\request.py", line 544, in _open '_open', req) File "C:\Program Files\Python36\lib\urllib\request.py", line 504, in _call_chain result = func(*args) File "C:\Program Files\Python36\lib\urllib\request.py", line 1346, in http_open return self.do_open(http.client.HTTPConnection, req) File "C:\Program Files\Python36\lib\urllib\request.py", line 1321, in do_open r = h.getresponse() File "C:\Program Files\Python36\lib\http\client.py", line 1331, in getresponse response.begin() File "C:\Program Files\Python36\lib\http\client.py", line 297, in begin version, status, reason = self._read_status() File "C:\Program Files\Python36\lib\http\client.py", line 266, in _read_status raise RemoteDisconnected("Remote end closed connection without" http.client.RemoteDisconnected: Remote end closed connection without response

为何用Python做爬虫时抓取下来的页面跟源代码不一样?

代码如下: # -*- coding:utf-8 -*- import urllib import urllib2 import re baseURL = 'http://zhidao.baidu.com/question/491268910.html' headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36'} #request = urllib2.Request(baseURL) request = urllib2.Request(url=baseURL,headers=headers) response = urllib2.urlopen(request) print response.read().decode("GBK") 我用上面的代码爬取一个百度知道的答案,把抓取到的信息打印出来为什么有的地方跟网页审查元素所显示的代码不一样? 网页原来的段落为:![图片说明](https://img-ask.csdn.net/upload/201604/05/1459841312_538797.png) 这段话对应的源代码为:![图片说明](https://img-ask.csdn.net/upload/201604/05/1459841401_109843.png) 抓取网页信息后的对应的代码为:![图片说明](https://img-ask.csdn.net/upload/201604/05/1459841477_324454.png) 我尝试了一个,在提取页面时,加载一个headers头部,但是结果还是不行,求各路大神指点,直接把解决办法附在评论区里,谢谢各路大神了。。。

Python读取JSON出现b'和\n'问题

使用Python自带的IDLE,发现读取JSON时会增加一些字符串。代码如下: ``` # -*- coding: utf-8 -*- import json from urllib.request import urlopen def getCountry(ipAddress): response=urlopen('http://freegeoip.net/json/'+ipAddress).read() print(response) responseJSON=json.loads(response) return responseJSON.get('country_code') print(getCountry('50.78.253.58')) ``` 运行环境如下: Python版本:python 3.5-64位 Windows系统:win10 64位(中文) 默认浏览器:Google chrome 46.0.2490.86 系统默认语言:中文 如图所示: ![图片说明](https://img-ask.csdn.net/upload/201703/19/1489921509_884593.jpg) 而翻看源码,似乎也没找到这几个字符串的东西: ![图片说明](https://img-ask.csdn.net/upload/201703/19/1489921759_759105.png) 麻烦大家帮忙看看有没有解决办法。系统是不太可能装英文版的了。第一次学习python,就遇到这种问题。

Python3.6+Selenium打不开Ie浏览器

【环境信息】 Python3.6+Selenium3.0.2+IE10+win7 【问题描述】 1、用如下代码打不开IE浏览器,但是能打开火狐浏览器 import unittest import os from selenium import webdriver class TestAutoMethods(unittest.TestCase): #打开Firefox浏览器 def test_openbrower(self): browser = webdriver.Firefox() browser.get("http://www.baidu.com") def test_FirstVase(self): #ie_driver = os.path.abspath(r"C:\Program Files(x86)\Internet Explorer\IEDriverServer.exe") #os.environ["webdriver.ie.driver"] = ie_driver browser = webdriver.Ie() browser.get("http://www.youdao.com") if __name__ == '__main__': unittest.main() 2、报错信息 复制代码 Error Traceback (most recent call last): File "D:\Users\chenle\PycharmProjects\untitled\test\FirstExam.py", line 14, in test_FirstVase browser = webdriver.Ie() File "C:\Program Files\Python36\lib\site-packages\selenium\webdriver\ie\webdriver.py", line 57, in __init__ desired_capabilities=capabilities) File "C:\Program Files\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 92, in __init__ self.start_session(desired_capabilities, browser_profile) File "C:\Program Files\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 179, in start_session response = self.execute(Command.NEW_SESSION, capabilities) File "C:\Program Files\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 234, in execute response = self.command_executor.execute(driver_command, params) File "C:\Program Files\Python36\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 408, in execute return self._request(command_info[0], url, body=data) File "C:\Program Files\Python36\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 478, in _request resp = opener.open(request, timeout=self._timeout) File "C:\Program Files\Python36\lib\urllib\request.py", line 526, in open response = self._open(req, data) File "C:\Program Files\Python36\lib\urllib\request.py", line 544, in _open '_open', req) File "C:\Program Files\Python36\lib\urllib\request.py", line 504, in _call_chain result = func(*args) File "C:\Program Files\Python36\lib\urllib\request.py", line 1346, in http_open return self.do_open(http.client.HTTPConnection, req) File "C:\Program Files\Python36\lib\urllib\request.py", line 1321, in do_open r = h.getresponse() File "C:\Program Files\Python36\lib\http\client.py", line 1331, in getresponse response.begin() File "C:\Program Files\Python36\lib\http\client.py", line 297, in begin version, status, reason = self._read_status() File "C:\Program Files\Python36\lib\http\client.py", line 266, in _read_status raise RemoteDisconnected("Remote end closed connection without" http.client.RemoteDisconnected: Remote end closed connection without response

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) ```

session的问题,为什么服务器端存入的值,浏览器却取不到?

``` # Servlet部分,数据已经能够通过数据库验证,将验证后的用户名存入session中 if(!res.equals("userwrong") && !res.equals("passwordwrong")) { request.getSession().setAttribute("username", res); } out.print(res); **res能够正常输出,说明已经存入session中了** # 但是jsp页面的session里是空值null <%String username=(String)request.getSession().getAttribute("username"); out.println(username) **这里打印出来是null,说明session为空,这是为什么?session不是打开浏览器之后就会存在,直到关闭浏览器才会消失的吗,那么为什么这里的session为null?** ```

Python selenium 打开chrome error【10054】被强行关闭,请问如何解决?

``` from selenium import webdriver import sys sys.path.insert(0,'F:\浏览器\chome\Google\Chrome\Application') options = webdriver.ChromeOptions() options.add_experimental_option("excludeSwitches", ["ignore-certificate-errors"]) driver = webdriver.Chrome(chrome_options=options) driver.get('https://www.baidu.com') driver.find_element_by_id('kw').send_keys('selenium') driver.find_element_by_id('su').click() with open('9.html','wb') as f: f.write(driver.page_source.encode('utf-8')) f.close() driver.close() ``` 运行后出现浏览器:这样的情况 ![图片说明](https://img-ask.csdn.net/upload/201707/17/1500264595_668338.png) 后代码报错: ``` Traceback (most recent call last): File "28baidu.py", line 12, in <module> driver.get('https://www.baidu.com') File "C:\Users\linqing\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 268, in get self.execute(Command.GET, {'url': url}) File "C:\Users\linqing\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 254, in execute response = self.command_executor.execute(driver_command, params) File "C:\Users\linqing\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 464, in execute return self._request(command_info[0], url, body=data) File "C:\Users\linqing\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 488, in _request resp = self._conn.getresponse() File "C:\Users\linqing\AppData\Local\Programs\Python\Python36-32\lib\http\client.py", line 1331, in getresponse response.begin() File "C:\Users\linqing\AppData\Local\Programs\Python\Python36-32\lib\http\client.py", line 297, in begin version, status, reason = self._read_status() File "C:\Users\linqing\AppData\Local\Programs\Python\Python36-32\lib\http\client.py", line 258, in _read_status line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") File "C:\Users\linqing\AppData\Local\Programs\Python\Python36-32\lib\socket.py", line 586, in readinto return self._sock.recv_into(b) ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。 ``` 没想到在此入坑,折腾一天无果,请大神帮帮忙

使用python3的asyncio写的网页不显示,会直接变成下载文件,是什么原因?

用python 3.5.2写的网页,但是运行起来后浏览器访问网址不会显示页面,而是直接把网页文件下载下来,下载下来的文件是可以使用浏览器打开的。 使用chrome和firefox都是这样的。 代码: ```python import asyncio from aiohttp import web def index(request): return web.Response(body=b'<h1>Awesome</h1>') @asyncio.coroutine def init(loop): app = web.Application(loop=loop) app.router.add_route('GET', '/', index) srv = yield from loop.create_server(app.make_handler(), '127.0.0.1', 9000) print('server started at http://127.0.0.1:9000...') return srv loop = asyncio.get_event_loop() loop.run_until_complete(init(loop)) loop.run_forever() ``` 访问网址后下载下来的文件如下图,内容是 ``` <h1>Awesome</h1> ``` ![图片说明](https://img-ask.csdn.net/upload/201609/22/1474506659_562489.png) ![图片说明](https://img-ask.csdn.net/upload/201609/22/1474506689_690166.png) 双击文件可以在浏览器中打开,如下图: ![图片说明](https://img-ask.csdn.net/upload/201609/22/1474506723_984721.png)

django使用@login_required时出现重定向次数过多问题是怎么回事

报错如下: ![图片说明](https://img-ask.csdn.net/upload/201908/23/1566554722_363027.png) 目录如下: ![图片说明](https://img-ask.csdn.net/upload/201908/23/1566554300_221679.png) index的views.py: ![图片说明](https://img-ask.csdn.net/upload/201908/23/1566554666_927148.png) login的views.py: ``` from django.shortcuts import render, redirect from .forms import * # Create your views here. def login_views(request): if request.method == 'GET': # 获取请求源地址,如果没有的话则获取'/' url = request.META.get('HTTP_REFERER', '/') # print("请求源地址:"+url) # 判断session中是否有uid和uname if 'uid' in request.session and 'uname' in request.session: return redirect(url) else: # 判断cookie中是否有uid和uname, if 'uid' in request.COOKIES and 'uname' in request.COOKIES: # 如果有的话则取出来并保存进session,再回首页 uid = request.COOKIES['uid'] uname = request.COOKIES['uname'] request.session['uid'] = uid request.session['uname'] = uname return redirect(url) else: form = LoginForm() # 构建响应对象,并将url保存进cookies resp = render(request, 'login.html', locals()) resp.set_cookie('url', url) return resp else: # post请求 # 获取请求源地址 url = request.META.get('HTTP_REFERER', '/') # 接收uname和upwd判断是否登录成功 uname = request.POST['uname'] upwd = request.POST['upwd'] user_name = Users.objects.filter(uname=uname) users = Users.objects.filter(uname=uname, upwd=upwd) # 如果成功继续向下执行,否则回到登录页 if users: # 登录成功,将id和uname保存进session id = users[0].id request.session['uid'] = id request.session['uname'] = uname # 如果有记住密码则将数据保存进cookies # 先从cookies中将url的值获取出来 url = request.COOKIES.get('url', '/') resp = redirect(url) # 如果url存在于cookies中的话,则将url从cookies中删除出去 if 'url' in request.COOKIES: resp.delete_cookie('url') if 'isSave' in request.POST: expires = 60 * 60 * 24 * 365 resp.set_cookie('uid', id, expires) resp.set_cookie('uname', uname, expires) return resp else: # 登录失败,回到登录页面 message = '登录失败!' return redirect('/login/') ```

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

点沙成金:英特尔芯片制造全过程揭密

“亚马逊丛林里的蝴蝶扇动几下翅膀就可能引起两周后美国德州的一次飓风……” 这句人人皆知的话最初用来描述非线性系统中微小参数的变化所引起的系统极大变化。 而在更长的时间尺度内,我们所生活的这个世界就是这样一个异常复杂的非线性系统…… 水泥、穹顶、透视——关于时间与技艺的蝴蝶效应 公元前3000年,古埃及人将尼罗河中挖出的泥浆与纳特龙盐湖中的矿物盐混合,再掺入煅烧石灰石制成的石灰,由此得来了人...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

外包程序员的幸福生活

今天给你们讲述一个外包程序员的幸福生活。男主是Z哥,不是在外包公司上班的那种,是一名自由职业者,接外包项目自己干。接下来讲的都是真人真事。 先给大家介绍一下男主,Z哥,老程序员,是我十多年前的老同事,技术大牛,当过CTO,也创过业。因为我俩都爱好喝酒、踢球,再加上住的距离不算远,所以一直也断断续续的联系着,我对Z哥的状况也有大概了解。 Z哥几年前创业失败,后来他开始干起了外包,利用自己的技术能...

C++11:一些微小的变化(新的数据类型、template表达式内的空格、nullptr、std::nullptr_t)

本文介绍一些C++的两个新特性,它们虽然微小,但对你的编程十分重要 一、Template表达式内的空格 C++11标准之前建议在“在两个template表达式的闭符之间放一个空格”的要求已经过时了 例如: vector&lt;list&lt;int&gt; &gt;; //C++11之前 vector&lt;list&lt;int&gt;&gt;; //C++11 二、nullptr ...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

深入剖析Springboot启动原理的底层源码,再也不怕面试官问了!

大家现在应该都对Springboot很熟悉,但是你对他的启动原理了解吗?

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

【阿里P6面经】二本,curd两年,疯狂复习,拿下阿里offer

二本的读者,在老东家不断学习,最后逆袭

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

正确选择比瞎努力更重要!

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

微软为一人收购一公司?破解索尼程序、写黑客小说,看他彪悍的程序人生!...

作者 | 伍杏玲出品 | CSDN(ID:CSDNnews)格子衬衫、常掉发、双肩包、修电脑、加班多……这些似乎成了大众给程序员的固定标签。近几年流行的“跨界风”开始刷新人们对程序员的...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

我说我懂多线程,面试官立马给我发了offer

不小心拿了几个offer,有点烦

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

立即提问
相关内容推荐