Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python web抓取-Unicodeincoder错误_Python_Web_Web Scraping - Fatal编程技术网

Python web抓取-Unicodeincoder错误

Python web抓取-Unicodeincoder错误,python,web,web-scraping,Python,Web,Web Scraping,我有一个代码,可以从一个网站获取链接。没有什么问题。代码在第二次运行时生成正确的输出。第一次没有生成任何输出。第二,我得到一个错误 错误消息: traceback (most recent call last): File "C:\Users\dell\AppData\Local\Programs\Python\Python35\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 326, in R

我有一个代码,可以从一个网站获取链接。没有什么问题。代码在第二次运行时生成正确的输出。第一次没有生成任何输出。第二,我得到一个错误

错误消息:

   traceback (most recent call last):
      File "C:\Users\dell\AppData\Local\Programs\Python\Python35\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 326, in RunScript
        exec(codeObject, __main__.__dict__)
      File "C:\Users\dell\AppData\Local\Programs\Python\Python35\ld.py", line 25, in <module>
        wr.writerows([tag.text])
      File "C:\Users\dell\AppData\Local\Programs\Python\Python35\lib\encodings\cp1252.py", line 19, in encode
        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
    UnicodeEncodeError: 'charmap' codec can't encode character '\x91' in position 410: character maps to <undefined>

有一些黑客如何摆脱它。但是最好使用python 3,错误将自行消失。

我使用的是python 3.5。还想知道如何设置搜索深度。错误已经解决。这是由于印地语字符。添加了一个异常处理程序。只在第二次运行时填充结果的问题仍然存在。另一个问题是文件以只读模式打开。为什么呢?我很抱歉问了一些愚蠢的问题。这是我第一次用Python编写代码。第二次填充结果的问题也得到了解决。必须添加缓冲区选项。然而,只读模式的问题仍然存在。只读模式的问题也得到了解决。再次添加resultFile.close()。对不起打扰你们了。昨天大脑冻结了。一双新的眼睛起了作用。
import csv
import urllib.parse
import urllib.request
from bs4 import BeautifulSoup
url = "http://www.dhr.gov.in/"
urls = [url]
visited = [url]
resultFile = open('t5.csv','w', newline ='')
wr = csv.writer(resultFile, delimiter = ' ')
while len(urls)>0:
    try:
        htmltext = urllib.request.urlopen(urls[0]).read()
    except:
        pass    
    soup = BeautifulSoup(htmltext)
    urls.pop(0)
    for tag in soup.findAll('a', href = True):
        tag['href'] = urllib.parse.urljoin(url,tag['href'])
        if url in tag['href']and tag['href'] not in visited:
            urls.append(tag['href'])
            visited.append(tag['href'])
            print([tag['href']])
            print([tag.text])
            wr.writerows([tag['href']])
            wr.writerows([tag.text])
resultFile.close()