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报文如下

图片说明
图片说明

1个回答

405错误是请求方法不被允许,404错误是客户端在浏览网页时,服务器无法正常提供信息,或是服务器无法回应,所以正确是https;

1.直接在浏览器链接打开的xml是不是你需要爬的内容??
2.如果是,尝试通过浏览器上 的请求再重新get一次试试
3.如果不是,那就是请求的url给加密了,你需要做多次请求找到url变化的规律,破解后再请求

simaconghui
simaconghui 应该是url加密了,我看看怎么破解,谢谢解疑!
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
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浏览器把图片下载下来呢。

python3.65 urllib.request.Request()增加header报错

# coding:utf-8 import urllib.request import urllib.parse url = 'http://192.168.**.**:9080/api/transactions' header = { 'Content-Type': 'application/json' } values ={ "currentToken": { "simplifiedName": "ETH", "address": "0x5bcd4d0508bc86c48760d0805962261d260d7a88" }, "txid": "" } data = urllib.parse.urlencode(values) data = data.encode(encoding='UTF-8') request = urllib.request.Request(url, data, header) #request = urllib.request.Request(url, data) print("111") html = urllib.request.urlopen(request) print("222") html =html.read().decode('utf-8') print(html) #返回结果 报错 D:\tool\Python36\python.exe D:/Users/Administrator/PycharmProjects/coinPlatform/test/test6.py 111 Traceback (most recent call last): File "D:/Users/Administrator/PycharmProjects/coinPlatform/test/test6.py", line 21, in <module> html = urllib.request.urlopen(request) File "D:\tool\Python36\lib\urllib\request.py", line 223, in urlopen return opener.open(url, data, timeout) File "D:\tool\Python36\lib\urllib\request.py", line 532, in open response = meth(req, response) File "D:\tool\Python36\lib\urllib\request.py", line 642, in http_response 'http', request, response, code, msg, hdrs) File "D:\tool\Python36\lib\urllib\request.py", line 570, in error return self._call_chain(*args) File "D:\tool\Python36\lib\urllib\request.py", line 504, in _call_chain result = func(*args) File "D:\tool\Python36\lib\urllib\request.py", line 650, in http_error_default raise HTTPError(req.full_url, code, msg, hdrs, fp) urllib.error.HTTPError: HTTP Error 404: Not Found Process finished with exit code 1 # coding:utf-8 import urllib.request import urllib.parse url = 'http://192.168.**.**:9080/api/transactions' header = { 'Content-Type': 'application/json' } values ={ "currentToken": { "simplifiedName": "ETH", "address": "0x5bcd4d0508bc86c48760d0805962261d260d7a88" }, "txid": "" } data = urllib.parse.urlencode(values) data = data.encode(encoding='UTF-8') #request = urllib.request.Request(url, data, header) request = urllib.request.Request(url, data) print("111") html = urllib.request.urlopen(request) print("222") html =html.read().decode('utf-8') print(html) 返回结果 成功 但没得到想要的结果 D:\tool\Python36\python.exe D:/Users/Administrator/PycharmProjects/coinPlatform/test/test6.py 111 222 {"code":0,"message":"success","data":{"currentToken":{},"transactions":[]}} Process finished with exit code 0

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音乐的官方网站,想从中得到歌曲的信息,用这个方法得到的代码比浏览器中代码缺少很多,没去歌曲的信息,只有一些界面的代码

【django】关于request.POST[]和request.POST.get()的问题

自己写了个django网站,今天用postman和python requests.post分别进行了登录接口测试,结果发现postman一直报错MultiValueDictKeyError at /login而requests.post是正常。然后我修改了uname和upwd的参数,发现request.POST.get()参数正常,request.POST[]会报错。这个是为什么呢? 代码如下: ``` uname = request.POST.get('uname') upwd = request.POST['upwd'] ``` 同时想请教一下postman和requests工作原理上的区别,谢谢!

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下一个界面。 非常感谢修改

python3 请求网页 Request和urlopen的区别

urllib.request.Request和urllib.request.urlopen的区别?求教

初学python。py文件能不能在浏览器打开

初学python。py文件能不能在浏览器打开初学python。py文件能不能在浏览器打开

python 爬虫 关于URL路径问题

我想问有没有大佬知道怎么用socket去连接一个具体的URL地址,我用 socket.connect((address,80)),address只能是www.baidu.com这样的地址,而不是 http://xxxxx/xxxxxx/ 这样带具体路径的地址,不然就会出错“getaddrinfo failed”。 **前提是别用其他lib**

python爬虫url去重问题

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

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

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

scrapy运行爬虫时报错Missing scheme in request url

scrapy刚入门小白一枚。用网上的案例代码来玩一玩,案例是http://blog.csdn.net/czl389/article/details/77278166 中的爬取嘻哈歌词。这个案例下有三只爬虫,分别是songurls,lyrics和songinfo。我用songurls爬虫能从虾米音乐上爬取了url并保存在SongUrls.csv中,但是在用lyrics爬虫的时候会报错。信息如下 **D:\xiami2\xiami2>scrapy crawl lyrics -o Lyrics.csv 2017-10-21 21:13:29 [scrapy.utils.log] INFO: Scrapy 1.4.0 started (bot: xiami2) 2017-10-21 21:13:29 [scrapy.utils.log] INFO: Overridden settings: {'NEWSPIDER_MODULE': 'xiami2.spiders', 'USER_AGENT': 'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 4.0; Trident/3.0)', 'FEED_URI': 'Lyrics.csv', 'FEED_FORMAT': 'csv', 'DOWNLOAD_DELAY': 0.2, 'SPIDER_MODULES': ['xiami2.spiders'], 'BOT_NAME': 'xiami2'} 2017-10-21 21:13:29 [scrapy.middleware] INFO: Enabled extensions: ['scrapy.extensions.telnet.TelnetConsole', 'scrapy.extensions.corestats.CoreStats', 'scrapy.extensions.feedexport.FeedExporter', 'scrapy.extensions.logstats.LogStats'] 2017-10-21 21:13:31 [scrapy.middleware] INFO: Enabled downloader middlewares: ['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'] 2017-10-21 21:13:31 [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'] 2017-10-21 21:13:31 [scrapy.middleware] INFO: Enabled item pipelines: ['xiami2.pipelines.Xiami2Pipeline'] 2017-10-21 21:13:31 [scrapy.core.engine] INFO: Spider opened 2017-10-21 21:13:31 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) 2017-10-21 21:13:31 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6023 2017-10-21 21:13:31 [scrapy.core.engine] ERROR: Error while obtaining start requests Traceback (most recent call last): File "d:\python3.5\lib\site-packages\scrapy\core\engine.py", line 127, in _next_request request = next(slot.start_requests) File "d:\python3.5\lib\site-packages\scrapy\spiders\__init__.py", line 83, in start_requests yield Request(url, dont_filter=True) File "d:\python3.5\lib\site-packages\scrapy\http\request\__init__.py", line 25, in __init__ self._set_url(url) File "d:\python3.5\lib\site-packages\scrapy\http\request\__init__.py", line 58, in _set_url raise ValueError('Missing scheme in request url: %s' % self._url) ValueError: Missing scheme in request url: 2017-10-21 21:13:31 [scrapy.core.engine] INFO: Closing spider (finished) 2017-10-21 21:13:31 [scrapy.statscollectors] INFO: Dumping Scrapy stats: {'finish_reason': 'finished', 'finish_time': datetime.datetime(2017, 10, 21, 13, 13, 31, 567323), 'log_count/DEBUG': 1, 'log_count/ERROR': 1, 'log_count/INFO': 7, 'start_time': datetime.datetime(2017, 10, 21, 13, 13, 31, 536236)} 2017-10-21 21:13:31 [scrapy.core.engine] INFO: Spider closed (finished) _------------------------------分割线--------------------------------------_ 我去查看了一下_init_.py,发现如下语句。 if ':' not in self._url: raise ValueError('Missing scheme in request url: %s' % self._url) 网上的解决方法看了一些,都没有能解决我的问题的,因此在此讨教,望大家指点一二(真没C币了)。提问次数不多,若有格式方面缺陷还请包含。 另附上代码。 #songurls.py import scrapy import re from scrapy.spiders import CrawlSpider, Rule from ..items import SongUrlItem class SongurlsSpider(scrapy.Spider): name = 'songurls' allowed_domains = ['xiami.com'] #将page/1到page/401,这些链接放进start_urls start_url_list=[] url_fixed='http://www.xiami.com/song/tag/Hip-Hop/page/' #将range范围扩大为1-401,获得所有页面 for i in range(1,402): start_url_list.extend([url_fixed+str(i)]) start_urls=start_url_list def parse(self,response): urls=response.xpath('//*[@id="wrapper"]/div[2]/div/div/div[2]/table/tbody/tr/td[2]/a[1]/@href').extract() for url in urls: song_url=response.urljoin(url) url_item=SongUrlItem() url_item['song_url']=song_url yield url_item ------------------------------分割线-------------------------------------- #lyrics.py import scrapy import re class LyricsSpider(scrapy.Spider): name = 'lyrics' allowed_domains = ['xiami.com'] song_url_file='SongUrls.csv' def __init__(self, *args, **kwargs): #从song_url.csv 文件中读取得到所有歌曲url f = open(self.song_url_file,"r") lines = f.readlines() #这里line[:-1]的含义是每行末尾都是一个换行符,要去掉 #这里in lines[1:]的含义是csv第一行是字段名称,要去掉 song_url_list=[line[:-1] for line in lines[1:]] f.close() while '\n' in song_url_list: song_url_list.remove('\n') self.start_urls = song_url_list#[:100]#删除[:100]之后爬取全部数据 def parse(self,response): lyric_lines=response.xpath('//*[@id="lrc"]/div[1]/text()').extract() lyric='' for lyric_line in lyric_lines: lyric+=lyric_line #print lyric lyricItem=LyricItem() lyricItem['lyric']=lyric lyricItem['song_url']=response.url yield lyricItem songinfo因为还没有用到所以不重要。 ------------------------------分割线-------------------------------------- #items.py import scrapy class SongUrlItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() song_url=scrapy.Field() #歌曲链接 class LyricItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() lyric=scrapy.Field() #歌词 song_url=scrapy.Field() #歌曲链接 class SongInfoItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() song_url=scrapy.Field() #歌曲链接 song_title=scrapy.Field() #歌名 album=scrapy.Field() #专辑 #singer=scrapy.Field() #歌手 language=scrapy.Field() #语种 ------------------------------分割线-------------------------------------- 在middleware下加了几行: sleep_seconds = 0.2 # 模拟点击后休眠3秒,给出浏览器取得响应内容的时间 default_sleep_seconds = 1 # 无动作请求休眠的时间 def process_request(self, request, spider): spider.logger.info('--------Spider request processed: %s' % spider.name) page = None driver = webdriver.PhantomJS() spider.logger.info('--------request.url: %s' % request.url) driver.get(request.url) driver.implicitly_wait(0.2) # 仅休眠数秒加载页面后返回内容 time.sleep(self.sleep_seconds) page = driver.page_source driver.close() return HtmlResponse(request.url, body=page, encoding='utf-8', request=request) ------------------------------分割线-------------------------------------- setting中加了几行也改了几行: from faker import Factory f = Factory.create() USER_AGENT = f.user_agent() DOWNLOAD_DELAY = 0.2 DEFAULT_REQUEST_HEADERS = { 'Host': 'www.xiami.com', 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate, br', 'Accept-Language': 'zh-CN,zh;q=0.8', 'Cache-Control': 'no-cache', 'Connection': 'Keep-Alive', } ITEM_PIPELINES = { 'xiami2.pipelines.Xiami2Pipeline': 300, }

python爬虫爬取腾讯新闻评论

python小白一枚,刚开始学爬虫,遇到一个动态网页爬取问题,请教各位大神。 需要爬取http://view.news.qq.com/original/intouchtoday/n4083.html 这篇新闻的评论内容, ![图片说明](https://img-ask.csdn.net/upload/201711/23/1511415727_305165.jpg) 但是在找到了目标request url: http://coral.qq.com/article/2243032968/comment?commentid=0&reqnum=10&tag=&ca,llback=mainComment&_=1511408574390 ,不知道怎么提取里面的评论内容,且里面的内容类似于\u***这样的乱码

python中URL地址用.format转换后出错

python中URL地址用.format转换后出错,提示JSONDecodeError("Expecting value", s, err.value) from None。 不转换的话没什么问题,url地址放在了address变量中(我用的是python3) ``` import urllib.request import ssl import json from cons import cons ssl._create_default_https_context = ssl._create_unverified_context station_list = {} for i in cons.split('@'): if i: temp_list = i.split('|') station_list[temp_list[1]] = temp_list[2] train_date = '2017-8-17' from_station = station_list['北京'] to_station = station_list['上海'] print(train_date, from_station, to_station) def get_list(): address = 'https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date={0}' \ '&leftTicketDTO.from_station={1}' \ '&leftTicketDTO.to_station={2}&purpose_codes=ADULT'.format(train_date, from_station, to_station) print(address) url = urllib.request.Request(address) url.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)' ' Chrome/45.0.2454.101 Safari/537.36') html = urllib.request.urlopen(url).read() dit = json.loads(html) print(type(html)) print(type(dit)) return dit['data']['result'] # 车次3 # 出发时间8 # 到达时间9 # 历时 = 10 # 硬卧 =28 # 出发日期 13 for i in get_list(): temp_buy = i.split('|') if temp_buy == '无' or temp_buy == ' ': continue else: print(temp_buy) # buy break ``` cost.py中的代码如下 ``` cons = '@bji|北京|BJP|0@sha|上海|SHH|1@tji|天津|TJP|2@cqi|重庆|CQW|3' \ '@csh|长沙|CSQ|4@cch|长春|CCT|5@cdu|成都|CDW|6@fzh|福州|FZS|7' \ '@gzh|广州|GZQ|8@gya|贵阳|GIW|9@hht|呼和浩特|HHC|10' \ '@heb|哈尔滨|HBB|11@hfe|合肥|HFH|12@hzh|杭州|HZH|13' \ '@hko|海口|VUQ|14@jna|济南|JNK|15@kmi|昆明|KMM|16' \ '@lsa|拉萨|LSO|17@lzh|兰州|LZJ|18@nni|南宁|NNZ|19' \ '@nji|南京|NJH|20@nch|南昌|NCG|21@sya|沈阳|SYT|22' \ '@sjz|石家庄|SJP|23@tyu|太原|TYV|24@wlq|乌鲁木齐南|WMR|25' \ '@wha|武汉|WHN|26@xni|西宁|XNO|27@xan|西安|XAY|28' \ '@ych|银川|YIJ|29@zzh|郑州|ZZF|30@szh|深圳|SZQ|shenzhen|sz|31' \ '@xme|厦门|XMS|xiamen|xm|32' ```

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爬虫为什么下载图片和下载音乐不起作用

![图片说明](https://img-ask.csdn.net/upload/201805/14/1526268585_748890.png)代码如下: class MyimagePipeline(ImagesPipeline): 20 ---- 21 def get_media_request(self, item, spider): 22 for url_tmp in item["singer_img"]: 23 if url_tmp != '': 24 yield Request(url=url_tmp, meta={"item":item, "file_name":item["singer_img_path"]}) 25 ---- 26 def file_path(self, request, response=None, info=None): 27 item = request.meta["item"] 28 image_name = item["singer_name"]+".jpg" 29 dir_name = request.meta["file_name"] 30 dir_name = re.sub(r'[?\\*|"<>:/]', '', name) 31 filename = u'{0}/{1}'.format(dir_name, image_name) 32 print('=='*20) 33 print(filename) 34 print('=='*20) 35 return filename 配置文件设置如下: 67 ITEM_PIPELINES = { 68 #'mp3.pipelines.Mp3Pipeline': 300, 69 #'mp3.pipelines.MyfilePipeline': 150, 70 'mp3.pipelines.SongPipeline': 100, 71 'mp3.pipelines.MyimagePipeline': 4, 72 } 73 IMAGES_STORE='/root/workspace/pcap/mp3/mp3/File/' 注意: 其中spider中已经将所有定义要提取的数据已经获取到了,其中MyfilePipeline是将提取出来的数据写在文件里边这个是没有问题的,剩下的两个SongPipeline和MyimagePipeline分别为下载歌曲和下载图片的,使用pdb在这两个类中打断点代码不会进去

python爬虫制作接口怎么做

python爬虫, 需要包装成接口,提供一个 url 给 别人用,效果是 打开 这个 url 就自动运行爬虫了。请教下怎么搞, 希望可以说的稍微具体,详细点

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爬虫爬取的数据不全

![图片说明](https://img-ask.csdn.net/upload/201707/28/1501209027_991059.png) ``` url='https://www.zhihu.com/people/yang-ze-yong-3/following' page=urllib.request.urlopen(url).read() soup=BeautifulSoup(page) items=soup.find_all('div',{'class':'List-item'}) ``` 结果只返回前3条List-item...新手求助

python request 库POST请求从ajax爬取数据遇到formdata不会处理了

目标爬取网站为http://www.ccgp-shaanxi.gov.cn/notice/list.do?noticetype=3&province=province form data为: ![form data](https://img-ask.csdn.net/upload/201806/08/1528427159_833509.png) 以下为我的代码: ``` import requests from urllib.parse import urlencode base_url = 'http://www.ccgp-shaanxi.gov.cn/notice/noticeaframe.do?noticetype=' noticetype = '3' url = base_url + noticetype headers = { 'Host': 'www.ccgp-shaanxi.gov.cn', 'Referer': 'http://www.ccgp-shaanxi.gov.cn/notice/list.do?noticetype=3&province=province', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36', 'X-Requested-With': 'XMLHttpRequest'} data = { 'parameters[purcatalogguid]': '', 'page.pageNum': '', 'parameters[title]': '税', 'parameters[startdate]': '', 'parameters[enddate]': '', 'parameters[regionguid]': '6101', 'parameters[projectcode]': '', 'province': '', 'parameters[purmethod]': '' } data = urlencode(data) print(data) request = requests.post(url, data=data, headers=headers) # print(request.text) print(request.headers) ``` 但是获取到的信息反应、感觉formdata貌似没有起作用,因本人属于新手小白,各位大神能指点指点吗? 可以执行一下帮忙分析分析吗?

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

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

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

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

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

String s = new String(" a ") 到底产生几个对象?

老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。 也就是说准确答案是产生了一个或两个对象,如果常量池中原来没有 ”宜春” ,就是两个。...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

Linux面试题(2020最新版)

文章目录Linux 概述什么是LinuxUnix和Linux有什么区别?什么是 Linux 内核?Linux的基本组件是什么?Linux 的体系结构BASH和DOS之间的基本区别是什么?Linux 开机启动过程?Linux系统缺省的运行级别?Linux 使用的进程间通信方式?Linux 有哪些系统日志文件?Linux系统安装多个桌面环境有帮助吗?什么是交换空间?什么是root帐户什么是LILO?什...

将一个接口响应时间从2s优化到 200ms以内的一个案例

一、背景 在开发联调阶段发现一个接口的响应时间特别长,经常超时,囧… 本文讲讲是如何定位到性能瓶颈以及修改的思路,将该接口从 2 s 左右优化到 200ms 以内 。 二、步骤 2.1 定位 定位性能瓶颈有两个思路,一个是通过工具去监控,一个是通过经验去猜想。 2.1.1 工具监控 就工具而言,推荐使用 arthas ,用到的是 trace 命令 具体安装步骤很简单,大家自行研究。 我的使用步骤是...

学历低,无法胜任工作,大佬告诉你应该怎么做

微信上收到一位读者小涛的留言,大致的意思是自己只有高中学历,经过培训后找到了一份工作,但很难胜任,考虑要不要辞职找一份他能力可以胜任的实习工作。下面是他留言的一部分内容: 二哥,我是 2016 年高中毕业的,考上了大学但没去成,主要是因为当时家里经济条件不太允许。 打工了三年后想学一门技术,就去培训了。培训的学校比较垃圾,现在非常后悔没去正规一点的机构培训。 去年 11 月份来北京找到了一份工...

JVM内存结构和Java内存模型别再傻傻分不清了

JVM内存结构和Java内存模型都是面试的热点问题,名字看感觉都差不多,网上有些博客也都把这两个概念混着用,实际上他们之间差别还是挺大的。 通俗点说,JVM内存结构是与JVM的内部存储结构相关,而Java内存模型是与多线程编程相关,本文针对这两个总是被混用的概念展开讲解。 JVM内存结构 JVM构成 说到JVM内存结构,就不会只是说内存结构的5个分区,而是会延展到整个JVM相关的问题,所以先了解下

和黑客斗争的 6 天!

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

Google 与微软的浏览器之争

浏览器再现“神仙打架”。整理 | 屠敏头图 | CSDN 下载自东方 IC出品 | CSDN(ID:CSDNnews)从 IE 到 Chrome,再从 Chrome 到 Edge,微软与...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

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

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

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

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

搜狗输入法也在挑战国人的智商!

故事总是一个接着一个到来...上周写完《鲁大师已经彻底沦为一款垃圾流氓软件!》这篇文章之后,鲁大师的市场工作人员就找到了我,希望把这篇文章删除掉。经过一番沟通我先把这篇文章从公号中删除了...

85后蒋凡:28岁实现财务自由、34岁成为阿里万亿电商帝国双掌门,他的人生底层逻辑是什么?...

蒋凡是何许人也? 2017年12月27日,在入职4年时间里,蒋凡开挂般坐上了淘宝总裁位置。 为此,时任阿里CEO张勇在任命书中力赞: 蒋凡加入阿里,始终保持创业者的冲劲,有敏锐的...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

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

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

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

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

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

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

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

离职半年了,老东家又发 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多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

立即提问
相关内容推荐