Python,爬取后文件是空的
import requestsimport bs4
import re
import random
def open_url(url):
iplist = ["60.2.44.182:30963","119.254.94.93:46323","113.128.148.50:8118","61.135.155.82:443","124.93.201.59:59618","120.198.76.45:41443"]
proxies = {"http":random.choice(iplist)}
headers = {"user-agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"}
res = requests.get(url,headers=headers,proxies=proxies)
return res
def find_movies(res):
soup = bs4.BeautifulSoup(res.text,"html.parser")
movies = []
targets1 = soup.find_all("div",class_="p12")
for each in targets1:
movies.append(each.a.span.text)
result = []
length = len(movies)
for i in range(length):
result.append(moives+'\n')
return result
def main():
host = "https://movie.douban.com/chart"
res = open_url(host)
result = []
result.extend(find_movies(res))
with open("豆瓣排行榜.txt", "w", encoding="utf-8") as f:
for each in result:
f.write(each)
if __name__ == "__main__":
main()
各位大佬帮我看看是怎么回事,运行后没报错,但文件是空的。 输出一下源码看看 targets1 = soup.find_all("div",class_="pl2")
class 是 PL2 suchocolate 发表于 2020-6-15 08:43
class 是 PL2
我改了class之后。还是报错了。{:10_266:}
Traceback (most recent call last):
File "E:\Python\work\爬取豆瓣排行榜.py", line 36, in <module>
main()
File "E:\Python\work\爬取豆瓣排行榜.py", line 30, in main
result.extend(find_movies(res))
File "E:\Python\work\爬取豆瓣排行榜.py", line 18, in find_movies
movies.append(each.a.span.text)
AttributeError: 'NoneType' object has no attribute 'text' xiaosi4081 发表于 2020-6-15 07:24
输出一下源码看看
怎么输出源码?{:10_245:} 欧皇肥宅 发表于 2020-6-15 15:26
怎么输出源码?
import requests
import bs4
import re
import random
def open_url(url):
iplist = ["60.2.44.182:30963","119.254.94.93:46323","113.128.148.50:8118","61.135.155.82:443","124.93.201.59:59618","120.198.76.45:41443"]
proxies = {"http":random.choice(iplist)}
headers = {"user-agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"}
res = requests.get(url,headers=headers,proxies=proxies)
print(res.text)
return res
def find_movies(res):
soup = bs4.BeautifulSoup(res.text,"html.parser")
movies = []
targets1 = soup.find_all("div",class_="p12")
for each in targets1:
movies.append(each.a.span.text)
result = []
length = len(movies)
for i in range(length):
result.append(moives+'\n')
return result
def main():
host = "https://movie.douban.com/chart"
res = open_url(host)
result = []
result.extend(find_movies(res))
with open("豆瓣排行榜.txt", "w", encoding="utf-8") as f:
for each in result:
f.write(each)
if __name__ == "__main__":
main() 本帖最后由 suchocolate 于 2020-6-15 18:00 编辑
欧皇肥宅 发表于 2020-6-15 15:26
我改了class之后。还是报错了。
Traceback (most recent call last):
File "E:\Python\wor ...
这个页面的第8部电影没有span,所以没有text,你改成这样吧:
for each in targets1:
if each.a.string:
movies.append(each.a.string)
else:
movies.append(each.a.span.string)
suchocolate 发表于 2020-6-15 17:31
这个页面的第8部电影没有span,所以没有text,你改成这样吧:
谢谢。可以了。
页:
[1]